diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/blocks.yml b/bukkit-loader/src/main/resources/resources/default/configuration/blocks.yml deleted file mode 100644 index 5475b6e3f..000000000 --- a/bukkit-loader/src/main/resources/resources/default/configuration/blocks.yml +++ /dev/null @@ -1,66 +0,0 @@ -items: - default:chinese_lantern: - material: paper - custom-model-data: 3000 - data: - item-name: "" - model: - type: "minecraft:model" - path: "minecraft:item/custom/chinese_lantern" - generation: - parent: "minecraft:block/custom/chinese_lantern" - behavior: - type: block_item - block: - loot: - template: "default:loot_table/basic" - arguments: - item: default:chinese_lantern - settings: - template: - - default:hardness/wool - - default:burn_data/planks - - default:sound/wood - overrides: - push-reaction: NORMAL - replaceable: false - is-redstone-conductor: true - is-suffocating: false - instrument: HARP - luminance: 15 - map-color: 36 - item: default:chinese_lantern - state: - id: 15 - state: note_block:15 - model: - path: "minecraft:block/custom/chinese_lantern" - generation: - parent: "minecraft:block/cube_column" - textures: - "end": "minecraft:block/custom/chinese_lantern_top" - "side": "minecraft:block/custom/chinese_lantern" - -recipes: - default:chinese_lantern: - type: shaped - pattern: - - "ABA" - - "BCB" - - "ABA" - ingredients: - A: "#minecraft:planks" - B: "minecraft:stick" - C: "minecraft:torch" - result: - id: default:chinese_lantern - count: 1 - default:paper_from_reed: - type: shaped - pattern: - - "AAA" - ingredients: - A: "default:reed" - result: - id: minecraft:paper - count: 3 \ No newline at end of file diff --git a/bukkit-loader/build.gradle.kts b/bukkit/loader/build.gradle.kts similarity index 100% rename from bukkit-loader/build.gradle.kts rename to bukkit/loader/build.gradle.kts diff --git a/bukkit-loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java b/bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java similarity index 100% rename from bukkit-loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java rename to bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java diff --git a/bukkit-loader/src/main/resources/additional-real-blocks.yml b/bukkit/loader/src/main/resources/additional-real-blocks.yml similarity index 97% rename from bukkit-loader/src/main/resources/additional-real-blocks.yml rename to bukkit/loader/src/main/resources/additional-real-blocks.yml index ec4cfa011..91993a87d 100644 --- a/bukkit-loader/src/main/resources/additional-real-blocks.yml +++ b/bukkit/loader/src/main/resources/additional-real-blocks.yml @@ -23,4 +23,6 @@ minecraft:spruce_sapling: 1 minecraft:jungle_sapling: 1 minecraft:dark_oak_sapling: 1 minecraft:acacia_sapling: 1 -minecraft:cherry_sapling: 1 \ No newline at end of file +minecraft:cherry_sapling: 1 + +minecraft:anvil: 2 \ No newline at end of file diff --git a/bukkit-loader/src/main/resources/blockstates.yml b/bukkit/loader/src/main/resources/blockstates.yml similarity index 100% rename from bukkit-loader/src/main/resources/blockstates.yml rename to bukkit/loader/src/main/resources/blockstates.yml diff --git a/bukkit-loader/src/main/resources/commands.yml b/bukkit/loader/src/main/resources/commands.yml similarity index 100% rename from bukkit-loader/src/main/resources/commands.yml rename to bukkit/loader/src/main/resources/commands.yml diff --git a/bukkit-loader/src/main/resources/config.yml b/bukkit/loader/src/main/resources/config.yml similarity index 91% rename from bukkit-loader/src/main/resources/config.yml rename to bukkit/loader/src/main/resources/config.yml index e3e398072..e4aa5638c 100644 --- a/bukkit-loader/src/main/resources/config.yml +++ b/bukkit/loader/src/main/resources/config.yml @@ -13,12 +13,10 @@ resource-pack: # Should those images in minecraft:default font also work in minecraft:uniform override-uniform-font: true # Generate assets for CraftEngine fabric mod - # Note: CraftEngine fabric mod is used for Axiom mod, most users do not need to install it + # Note: fabric mod is used for clientside Axiom/WorldEdit mod generate-mod-assets: false # Resource pack protection protection: - # Warning: Do not attempt to unzip the resource pack with crash tools enabled. - # Warning: Do not attempt to unzip the resource pack with crash tools enabled. # Warning: Do not attempt to unzip the resource pack with crash tools enabled. # You can enable all the methods at the same time. crash-tools: @@ -55,7 +53,6 @@ resource-pack: bypass-models: [] bypass-sounds: [] bypass-equipments: [] - supported-version: min: "1.20" max: LATEST @@ -140,6 +137,16 @@ furniture: list: - "xxx:invalid_furniture" +image: + # Prevent players from using images set in minecraft:default font + # Players with `craftengine.filter.bypass.xxx` would ignore the limitation + illegal-characters-filter: + anvil: true + book: true + chat: true + command: true + sign: true + recipe: enable: true @@ -210,6 +217,10 @@ performance: # Disabling this option prevents the plugin from converting custom blocks to vanilla states when chunks are unloaded. # While this can improve performance, custom blocks will turn into air if the plugin is uninstalled. restore-vanilla-blocks-on-chunk-unload: true + # When you edit a map locally using CraftEngine fabric mod, the custom block data is not immediately synchronized with the + # server's CraftEngine internal data. Enabling this option will synchronize the data when the chunk is loaded. + # (This option only slightly impacts performance, which has been fully optimized, so you don't need to worry too much.) + sync-custom-blocks-on-chunk-load: false # If you disable this, it's a must to disable the above option. restore-custom-blocks-on-chunk-load: true diff --git a/bukkit-loader/src/main/resources/craft-engine.properties b/bukkit/loader/src/main/resources/craft-engine.properties similarity index 100% rename from bukkit-loader/src/main/resources/craft-engine.properties rename to bukkit/loader/src/main/resources/craft-engine.properties diff --git a/bukkit-loader/src/main/resources/internal/items/_all.json b/bukkit/loader/src/main/resources/internal/items/_all.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/items/_all.json rename to bukkit/loader/src/main/resources/internal/items/_all.json diff --git a/bukkit-loader/src/main/resources/internal/items/_list.json b/bukkit/loader/src/main/resources/internal/items/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/items/_list.json rename to bukkit/loader/src/main/resources/internal/items/_list.json diff --git a/bukkit-loader/src/main/resources/internal/models/block/_all.json b/bukkit/loader/src/main/resources/internal/models/block/_all.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/block/_all.json rename to bukkit/loader/src/main/resources/internal/models/block/_all.json diff --git a/bukkit-loader/src/main/resources/internal/models/block/_list.json b/bukkit/loader/src/main/resources/internal/models/block/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/block/_list.json rename to bukkit/loader/src/main/resources/internal/models/block/_list.json diff --git a/bukkit-loader/src/main/resources/internal/models/item/legacy/_all.json b/bukkit/loader/src/main/resources/internal/models/item/legacy/_all.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/item/legacy/_all.json rename to bukkit/loader/src/main/resources/internal/models/item/legacy/_all.json diff --git a/bukkit-loader/src/main/resources/internal/models/item/legacy/_list.json b/bukkit/loader/src/main/resources/internal/models/item/legacy/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/item/legacy/_list.json rename to bukkit/loader/src/main/resources/internal/models/item/legacy/_list.json diff --git a/bukkit-loader/src/main/resources/internal/models/item/modern/_all.json b/bukkit/loader/src/main/resources/internal/models/item/modern/_all.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/item/modern/_all.json rename to bukkit/loader/src/main/resources/internal/models/item/modern/_all.json diff --git a/bukkit-loader/src/main/resources/internal/models/item/modern/_list.json b/bukkit/loader/src/main/resources/internal/models/item/modern/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/models/item/modern/_list.json rename to bukkit/loader/src/main/resources/internal/models/item/modern/_list.json diff --git a/bukkit-loader/src/main/resources/internal/sounds.json b/bukkit/loader/src/main/resources/internal/sounds.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/sounds.json rename to bukkit/loader/src/main/resources/internal/sounds.json diff --git a/bukkit-loader/src/main/resources/internal/textures/block/_list.json b/bukkit/loader/src/main/resources/internal/textures/block/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/textures/block/_list.json rename to bukkit/loader/src/main/resources/internal/textures/block/_list.json diff --git a/bukkit-loader/src/main/resources/internal/textures/font/_list.json b/bukkit/loader/src/main/resources/internal/textures/font/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/textures/font/_list.json rename to bukkit/loader/src/main/resources/internal/textures/font/_list.json diff --git a/bukkit-loader/src/main/resources/internal/textures/item/_list.json b/bukkit/loader/src/main/resources/internal/textures/item/_list.json similarity index 100% rename from bukkit-loader/src/main/resources/internal/textures/item/_list.json rename to bukkit/loader/src/main/resources/internal/textures/item/_list.json diff --git a/bukkit-loader/src/main/resources/mappings.yml b/bukkit/loader/src/main/resources/mappings.yml similarity index 99% rename from bukkit-loader/src/main/resources/mappings.yml rename to bukkit/loader/src/main/resources/mappings.yml index fc43ff532..b21e18b19 100644 --- a/bukkit-loader/src/main/resources/mappings.yml +++ b/bukkit/loader/src/main/resources/mappings.yml @@ -1,4 +1,8 @@ ######################################################################################################################################################################################################################## +# Anvil Block +minecraft:anvil[facing=north]: minecraft:anvil[facing=south] +minecraft:anvil[facing=east]: minecraft:anvil[facing=west] +######################################################################################################################################################################################################################## # Sapling Block minecraft:oak_sapling[stage=1]: minecraft:oak_sapling[stage=0] minecraft:birch_sapling[stage=1]: minecraft:birch_sapling[stage=0] diff --git a/bukkit/loader/src/main/resources/resources/default/configuration/blocks.yml b/bukkit/loader/src/main/resources/resources/default/configuration/blocks.yml new file mode 100644 index 000000000..f1568cfb1 --- /dev/null +++ b/bukkit/loader/src/main/resources/resources/default/configuration/blocks.yml @@ -0,0 +1,148 @@ +items: + default:chinese_lantern: + material: paper + custom-model-data: 3000 + data: + item-name: "" + model: + type: "minecraft:model" + path: "minecraft:item/custom/chinese_lantern" + generation: + parent: "minecraft:block/custom/chinese_lantern" + behavior: + type: block_item + block: + loot: + template: "default:loot_table/basic" + arguments: + item: default:chinese_lantern + settings: + template: + - default:hardness/wool + - default:burn_data/planks + - default:sound/wood + overrides: + push-reaction: NORMAL + replaceable: false + is-redstone-conductor: true + is-suffocating: false + instrument: HARP + luminance: 15 + map-color: 36 + item: default:chinese_lantern + state: + id: 15 + state: note_block:15 + model: + path: "minecraft:block/custom/chinese_lantern" + generation: + parent: "minecraft:block/cube_column" + textures: + "end": "minecraft:block/custom/chinese_lantern_top" + "side": "minecraft:block/custom/chinese_lantern" + default:netherite_anvil: + material: paper + custom-model-data: 3001 + data: + item-name: "" + model: + type: "minecraft:model" + path: "minecraft:item/custom/netherite_anvil" + generation: + parent: "minecraft:block/custom/netherite_anvil" + behavior: + type: block_item + block: + loot: + template: "default:loot_table/basic" + arguments: + item: default:netherite_anvil + behavior: + type: falling_block + hurt-amount: 4 + max-hurt: 80 + settings: + template: + - default:pickaxe_power/level_4 + overrides: + sounds: + break: minecraft:block.anvil.break + step: minecraft:block.anvil.step + place: minecraft:block.anvil.place + hit: minecraft:block.anvil.hit + fall: minecraft:block.anvil.fall + land: minecraft:block.anvil.land + item: default:netherite_anvil + map-color: 29 + hardness: 10.0 + resistance: 1200 + push-reaction: BLOCK + states: + properties: + facing_clockwise: + type: 4-direction + default: north + appearances: + axisX: + state: "minecraft:anvil[facing=east]" + model: + path: "minecraft:block/custom/netherite_anvil" + y: 90 + generation: + parent: "minecraft:block/anvil" + textures: + "top": "minecraft:block/custom/netherite_anvil_top" + "body": "minecraft:block/custom/netherite_anvil" + "particle": "minecraft:block/custom/netherite_anvil" + axisZ: + state: "minecraft:anvil[facing=north]" + model: + path: "minecraft:block/custom/netherite_anvil" + variants: + facing_clockwise=east: + appearance: axisX + id: 0 + facing_clockwise=west: + appearance: axisX + id: 1 + facing_clockwise=north: + appearance: axisZ + id: 2 + facing_clockwise=south: + appearance: axisZ + id: 3 +recipes: + default:chinese_lantern: + type: shaped + pattern: + - "ABA" + - "BCB" + - "ABA" + ingredients: + A: "#minecraft:planks" + B: "minecraft:stick" + C: "minecraft:torch" + result: + id: default:chinese_lantern + count: 1 + default:paper_from_reed: + type: shaped + pattern: + - "AAA" + ingredients: + A: "default:reed" + result: + id: minecraft:paper + count: 3 + default:netherite_anvil: + type: shaped + pattern: + - " B " + - "BAB" + - " B " + ingredients: + A: "minecraft:anvil" + B: "minecraft:netherite_ingot" + result: + id: default:netherite_anvil + count: 1 \ No newline at end of file diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/categories.yml b/bukkit/loader/src/main/resources/resources/default/configuration/categories.yml similarity index 98% rename from bukkit-loader/src/main/resources/resources/default/configuration/categories.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/categories.yml index 4834bf38d..da8c4c458 100644 --- a/bukkit-loader/src/main/resources/resources/default/configuration/categories.yml +++ b/bukkit/loader/src/main/resources/resources/default/configuration/categories.yml @@ -56,5 +56,6 @@ categories: icon: default:chinese_lantern list: - default:chinese_lantern + - default:netherite_anvil - default:fairy_flower - default:reed \ No newline at end of file diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/furniture.yml b/bukkit/loader/src/main/resources/resources/default/configuration/furniture.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/furniture.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/furniture.yml diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/i18n.yml b/bukkit/loader/src/main/resources/resources/default/configuration/i18n.yml similarity index 96% rename from bukkit-loader/src/main/resources/resources/default/configuration/i18n.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/i18n.yml index 456f15b57..a4f86bb33 100644 --- a/bukkit-loader/src/main/resources/resources/default/configuration/i18n.yml +++ b/bukkit/loader/src/main/resources/resources/default/configuration/i18n.yml @@ -28,6 +28,7 @@ i18n: item.palm_planks: "Palm Planks" item.palm_sapling: "Palm Sapling" item.palm_leaves: "Palm Leaves" + item.netherite_anvil: "Netherite Anvil" category.default.name: "Default Assets" category.default.lore: "Contains the default configuration of CraftEngine" category.palm_tree: "Palm Tree" @@ -63,6 +64,7 @@ i18n: item.palm_planks: "棕榈木板" item.palm_sapling: "棕榈树苗" item.palm_leaves: "棕榈树叶" + item.netherite_anvil: "下界合金砧" category.default.name: "默认资产" category.default.lore: "包含了CraftEngine的默认配置" category.palm_tree: "棕榈树" diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/icons.yml b/bukkit/loader/src/main/resources/resources/default/configuration/icons.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/icons.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/icons.yml diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/items.yml b/bukkit/loader/src/main/resources/resources/default/configuration/items.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/items.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/items.yml diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/ores.yml b/bukkit/loader/src/main/resources/resources/default/configuration/ores.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/ores.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/ores.yml diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/palm_tree.yml b/bukkit/loader/src/main/resources/resources/default/configuration/palm_tree.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/palm_tree.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/palm_tree.yml diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/plants.yml b/bukkit/loader/src/main/resources/resources/default/configuration/plants.yml similarity index 97% rename from bukkit-loader/src/main/resources/resources/default/configuration/plants.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/plants.yml index 328001802..41ccd6499 100644 --- a/bukkit-loader/src/main/resources/resources/default/configuration/plants.yml +++ b/bukkit/loader/src/main/resources/resources/default/configuration/plants.yml @@ -1,7 +1,7 @@ items: default:fairy_flower: material: paper - custom-model-data: 3001 + custom-model-data: 4000 data: item-name: "" model: @@ -13,7 +13,7 @@ items: block: default:fairy_flower default:reed: material: paper - custom-model-data: 3002 + custom-model-data: 4001 data: item-name: "" model: diff --git a/bukkit-loader/src/main/resources/resources/default/configuration/templates.yml b/bukkit/loader/src/main/resources/resources/default/configuration/templates.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/configuration/templates.yml rename to bukkit/loader/src/main/resources/resources/default/configuration/templates.yml diff --git a/bukkit-loader/src/main/resources/resources/default/pack.yml b/bukkit/loader/src/main/resources/resources/default/pack.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/pack.yml rename to bukkit/loader/src/main/resources/resources/default/pack.yml diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/fairy_flower_1.json b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/fairy_flower_1.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/fairy_flower_1.json rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/fairy_flower_1.json diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/reed.json b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/reed.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/reed.json rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/block/custom/reed.json diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/bench.json b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/bench.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/bench.json rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/bench.json diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/table_lamp.json b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/table_lamp.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/table_lamp.json rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/table_lamp.json diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/wooden_chair.json b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/wooden_chair.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/wooden_chair.json rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/models/item/custom/wooden_chair.json diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/deepslate_topaz_ore.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_1.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_1.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_1.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_1.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_2.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_2.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_2.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_2.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_3.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_3.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_3.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_3.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_4.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_4.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_4.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/fairy_flower_4.png diff --git a/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil.png new file mode 100644 index 000000000..0838fe2cc Binary files /dev/null and b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil.png differ diff --git a/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil_top.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil_top.png new file mode 100644 index 000000000..2dae8391b Binary files /dev/null and b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil_top.png differ diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_leaves.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_leaves.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_leaves.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_leaves.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log_top.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log_top.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log_top.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_log_top.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_planks.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_planks.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_planks.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_planks.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_sapling.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_sapling.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_sapling.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/palm_sapling.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/reed.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/reed.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/reed.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/reed.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log_top.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log_top.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log_top.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/stripped_palm_log_top.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/block/custom/topaz_ore.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid/topaz.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid/topaz.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid/topaz.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid/topaz.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid_leggings/topaz.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid_leggings/topaz.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid_leggings/topaz.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/entity/equipment/humanoid_leggings/topaz.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/font/image/icons.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/font/image/icons.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/font/image/icons.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/font/image/icons.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_background.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/gui/sprites/tooltip/topaz_frame.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/bench.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/bench.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/bench.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/bench.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/fairy_flower.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/fairy_flower.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/fairy_flower.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/fairy_flower.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/reed.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/reed.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/reed.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/reed.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/table_lamp.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/table_lamp.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/table_lamp.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/table_lamp.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_axe.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_boots.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_0.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_0.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_0.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_0.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_1.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_1.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_1.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_1.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_2.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_2.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_2.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_bow_pulling_2.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_chestplate.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_arrow.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_arrow.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_arrow.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_arrow.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_firework.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_firework.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_firework.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_firework.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_0.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_0.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_0.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_0.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_1.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_1.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_1.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_1.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_2.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_2.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_2.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_crossbow_pulling_2.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_helmet.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_hoe.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_leggings.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_pickaxe.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod_cast.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod_cast.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod_cast.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod_cast.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_shovel.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_sword.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/wooden_chair.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/wooden_chair.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/wooden_chair.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/assets/minecraft/textures/item/custom/wooden_chair.png diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/pack.mcmeta b/bukkit/loader/src/main/resources/resources/default/resourcepack/pack.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/pack.mcmeta rename to bukkit/loader/src/main/resources/resources/default/resourcepack/pack.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/default/resourcepack/pack.png b/bukkit/loader/src/main/resources/resources/default/resourcepack/pack.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/default/resourcepack/pack.png rename to bukkit/loader/src/main/resources/resources/default/resourcepack/pack.png diff --git a/bukkit-loader/src/main/resources/resources/internal/configuration/gui.yml b/bukkit/loader/src/main/resources/resources/internal/configuration/gui.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/configuration/gui.yml rename to bukkit/loader/src/main/resources/resources/internal/configuration/gui.yml diff --git a/bukkit-loader/src/main/resources/resources/internal/configuration/i18n.yml b/bukkit/loader/src/main/resources/resources/internal/configuration/i18n.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/configuration/i18n.yml rename to bukkit/loader/src/main/resources/resources/internal/configuration/i18n.yml diff --git a/bukkit-loader/src/main/resources/resources/internal/configuration/offset_chars.yml b/bukkit/loader/src/main/resources/resources/internal/configuration/offset_chars.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/configuration/offset_chars.yml rename to bukkit/loader/src/main/resources/resources/internal/configuration/offset_chars.yml diff --git a/bukkit-loader/src/main/resources/resources/internal/pack.yml b/bukkit/loader/src/main/resources/resources/internal/pack.yml similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/pack.yml rename to bukkit/loader/src/main/resources/resources/internal/pack.yml diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/models/block/default_chorus_plant.json b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/models/block/default_chorus_plant.json similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/models/block/default_chorus_plant.json rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/models/block/default_chorus_plant.json diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/blasting.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/blasting.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/blasting.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/blasting.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/campfire.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/campfire.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/campfire.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/campfire.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/category.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/category.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/category.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/category.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/cooking_recipe.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/cooking_recipe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/cooking_recipe.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/cooking_recipe.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/crafting_recipe.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/crafting_recipe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/crafting_recipe.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/crafting_recipe.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/item_browser.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/item_browser.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/item_browser.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/item_browser.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/no_recipe.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/no_recipe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/no_recipe.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/no_recipe.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smelting.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smelting.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smelting.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smelting.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smithing_transform_recipe.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smithing_transform_recipe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smithing_transform_recipe.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smithing_transform_recipe.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smoking.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smoking.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smoking.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/smoking.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/stonecutting_recipe.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/stonecutting_recipe.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/stonecutting_recipe.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/gui/custom/stonecutting_recipe.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/offset/space_split.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/offset/space_split.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/offset/space_split.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/font/offset/space_split.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png.mcmeta b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png.mcmeta similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png.mcmeta rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/cooking_info.png.mcmeta diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/exit.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/exit.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/exit.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/exit.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/get_item.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/get_item.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/get_item.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/get_item.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_0.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_0.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_0.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_0.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_1.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_1.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_1.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/next_page_1.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_0.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_0.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_0.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_0.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_1.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_1.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_1.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/previous_page_1.png diff --git a/bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/return.png b/bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/return.png similarity index 100% rename from bukkit-loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/return.png rename to bukkit/loader/src/main/resources/resources/internal/resourcepack/assets/minecraft/textures/item/custom/gui/return.png diff --git a/bukkit-loader/src/main/resources/translations/en.yml b/bukkit/loader/src/main/resources/translations/en.yml similarity index 100% rename from bukkit-loader/src/main/resources/translations/en.yml rename to bukkit/loader/src/main/resources/translations/en.yml diff --git a/bukkit-loader/src/main/resources/translations/es.yml b/bukkit/loader/src/main/resources/translations/es.yml similarity index 100% rename from bukkit-loader/src/main/resources/translations/es.yml rename to bukkit/loader/src/main/resources/translations/es.yml diff --git a/bukkit-loader/src/main/resources/translations/zh_cn.yml b/bukkit/loader/src/main/resources/translations/zh_cn.yml similarity index 100% rename from bukkit-loader/src/main/resources/translations/zh_cn.yml rename to bukkit/loader/src/main/resources/translations/zh_cn.yml diff --git a/bukkit-loader/src/main/resources/translations/zh_tw.yml b/bukkit/loader/src/main/resources/translations/zh_tw.yml similarity index 100% rename from bukkit-loader/src/main/resources/translations/zh_tw.yml rename to bukkit/loader/src/main/resources/translations/zh_tw.yml diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineBlocks.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineBlocks.java index b92732599..a48dbd85c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineBlocks.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/api/CraftEngineBlocks.java @@ -115,7 +115,7 @@ public final class CraftEngineBlocks { if (success) { Reflections.method$BlockStateBase$onPlace.invoke(blockState, worldServer, blockPos, oldBlockState, true); if (playSound) { - location.getWorld().playSound(location, block.sounds().placeSound().toString(), SoundCategory.BLOCKS, 1, 0.8f); + location.getWorld().playSound(location, block.sounds().placeSound().toString(), SoundCategory.BLOCKS, block.sounds().placeSound().volume(), block.sounds().placeSound().pitch()); } } } catch (ReflectiveOperationException e) { @@ -185,7 +185,7 @@ public final class CraftEngineBlocks { } } if (playSound) { - world.playBlockSound(vec3d, state.sounds().breakSound(), 1, 0.8f); + world.playBlockSound(vec3d, state.sounds().breakSound()); } if (sendParticles) { // TODO Particles diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java index b9c370a51..ec1436b9d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/BlockEventListener.java @@ -121,7 +121,7 @@ public class BlockEventListener implements Listener { } // play sound Vec3d vec3d = new Vec3d(location.getBlockX() + 0.5, location.getBlockY() + 0.5, location.getBlockZ() + 0.5); - world.playBlockSound(vec3d, state.sounds().breakSound(), 1f, 0.8f); + world.playBlockSound(vec3d, state.sounds().breakSound()); if (player.getGameMode() == GameMode.CREATIVE) { return; } @@ -226,7 +226,7 @@ public class BlockEventListener implements Listener { int stateId = BlockStateUtils.blockStateToId(blockState); if (!BlockStateUtils.isVanillaBlock(stateId)) { ImmutableBlockState state = manager.getImmutableBlockStateUnsafe(stateId); - player.playSound(playerLocation, state.sounds().stepSound().toString(), SoundCategory.BLOCKS, 0.15f, 1f); + player.playSound(playerLocation, state.sounds().stepSound().id().toString(), SoundCategory.BLOCKS, state.sounds().stepSound().volume(), state.sounds().stepSound().pitch()); } else if (ConfigManager.enableSoundSystem()) { Object ownerBlock = BlockStateUtils.getBlockOwner(blockState); if (manager.isBlockSoundRemoved(ownerBlock)) { @@ -268,7 +268,7 @@ public class BlockEventListener implements Listener { for (Item item : blockState.getDrops(builder, world)) { world.dropItemNaturally(vec3d, item); } - world.playBlockSound(vec3d, blockState.sounds().breakSound(),1f, 0.8f); + world.playBlockSound(vec3d, blockState.sounds().breakSound()); } } } @@ -300,7 +300,7 @@ public class BlockEventListener implements Listener { for (Item item : state.getDrops(builder, world)) { world.dropItemNaturally(vec3d, item); } - world.playBlockSound(vec3d, state.sounds().breakSound(), 1f, 0.8f); + world.playBlockSound(vec3d, state.sounds().breakSound()); } } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java index fa0e9a2e6..bd316aa36 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FallingBlockBehavior.java @@ -2,6 +2,7 @@ package net.momirealms.craftengine.bukkit.block.behavior; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; import net.momirealms.craftengine.bukkit.util.BlockStateUtils; +import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.bukkit.util.Reflections; import net.momirealms.craftengine.bukkit.world.BukkitWorld; import net.momirealms.craftengine.core.block.CustomBlock; @@ -102,6 +103,23 @@ public class FallingBlockBehavior extends BlockBehavior { } } + @Override + public void onLand(Object thisBlock, Object[] args) throws Exception { + Object fallingBlock = args[4]; + Object entityData = Reflections.field$Entity$entityData.get(fallingBlock); + boolean isSilent = (boolean) Reflections.method$SynchedEntityData$get.invoke(entityData, Reflections.instance$Entity$DATA_SILENT); + if (!isSilent) { + Object blockState = args[2]; + int stateId = BlockStateUtils.blockStateToId(blockState); + ImmutableBlockState immutableBlockState = BukkitBlockManager.instance().getImmutableBlockState(stateId); + if (immutableBlockState == null || immutableBlockState.isEmpty()) return; + Object level = args[0]; + Object pos = args[1]; + net.momirealms.craftengine.core.world.World world = new BukkitWorld((World) Reflections.method$Level$getCraftWorld.invoke(level)); + world.playBlockSound(Vec3d.atCenterOf(LocationUtils.fromBlockPos(pos)), immutableBlockState.sounds().landSound()); + } + } + public static class Factory implements BlockBehaviorFactory { @Override public BlockBehavior create(CustomBlock block, Map arguments) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java index d9bd89399..2998fa762 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SaplingBlockBehavior.java @@ -121,7 +121,9 @@ public class SaplingBlockBehavior extends BushBlockBehavior { throw new IllegalArgumentException("stage property not set for sapling"); } double boneMealSuccessChance = MiscUtils.getAsDouble(arguments.getOrDefault("bone-meal-success-chance", 0.45)); - if (arguments.containsKey("tags")) { + if (arguments.containsKey("bottom-block-tags")) { + return new SaplingBlockBehavior(Key.of(feature), stageProperty, MiscUtils.getAsStringList(arguments.get("bottom-block-tags")).stream().map(it -> BlockTags.getOrCreate(Key.of(it))).toList(), boneMealSuccessChance); + } else if (arguments.containsKey("tags")) { return new SaplingBlockBehavior(Key.of(feature), stageProperty, MiscUtils.getAsStringList(arguments.get("tags")).stream().map(it -> BlockTags.getOrCreate(Key.of(it))).toList(), boneMealSuccessChance); } else { return new SaplingBlockBehavior(Key.of(feature), stageProperty, List.of(DIRT_TAG, FARMLAND), boneMealSuccessChance); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitImageManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitImageManager.java index b636ef95c..6dcd6e430 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitImageManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/font/BukkitImageManager.java @@ -5,8 +5,11 @@ import io.papermc.paper.event.player.AsyncChatDecorateEvent; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.util.Reflections; import net.momirealms.craftengine.core.font.AbstractImageManager; +import net.momirealms.craftengine.core.font.ImageManager; +import net.momirealms.craftengine.core.plugin.config.ConfigManager; import net.momirealms.craftengine.core.util.CharacterUtils; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.HandlerList; @@ -45,27 +48,35 @@ public class BukkitImageManager extends AbstractImageManager implements Listener @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @SuppressWarnings("UnstableApiUsage") public void onChat(AsyncChatDecorateEvent event) { - if (event.player() == null) return; - if (!this.isDefaultFontInUse()) return; - this.processChatMessages(event); + if (!ConfigManager.filterChat()) return; + this.processChatEvent(event); } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @SuppressWarnings("UnstableApiUsage") public void onChatCommand(AsyncChatCommandDecorateEvent event) { - if (event.player() == null) return; - if (!this.isDefaultFontInUse()) return; - this.processChatMessages(event); + if (!ConfigManager.filterChat()) return; + this.processChatEvent(event); } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onCommand(PlayerCommandPreprocessEvent event) { + if (!ConfigManager.filterCommand()) return; if (!this.isDefaultFontInUse()) return; + if (event.getPlayer().hasPermission(ImageManager.BYPASS_COMMAND)) { + return; + } runIfContainsIllegalCharacter(event.getMessage(), event::setMessage); } @SuppressWarnings("UnstableApiUsage") - private void processChatMessages(AsyncChatDecorateEvent event) { + private void processChatEvent(AsyncChatDecorateEvent event) { + Player player = event.player(); + if (player == null) return; + if (!this.isDefaultFontInUse()) return; + if (player.hasPermission(ImageManager.BYPASS_CHAT)) { + return; + } try { Object originalMessage = Reflections.field$AsyncChatDecorateEvent$originalMessage.get(event); String jsonMessage = (String) Reflections.method$ComponentSerializer$serialize.invoke(serializer, originalMessage); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java index 1add69fe2..e83945789 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/behavior/BlockItemBehavior.java @@ -24,7 +24,11 @@ import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.world.BlockPos; -import org.bukkit.*; +import net.momirealms.craftengine.core.world.Vec3d; +import org.bukkit.Bukkit; +import org.bukkit.GameEvent; +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.data.BlockData; @@ -120,7 +124,7 @@ public class BlockItemBehavior extends ItemBehavior { } player.swingHand(placeContext.getHand()); - world.playSound(new Location(world, pos.x(), pos.y(), pos.z()), blockStateToPlace.sounds().placeSound().toString(), SoundCategory.BLOCKS, 1f, 0.8f); + placeContext.getLevel().playBlockSound(new Vec3d(pos.x() + 0.5, pos.y() + 0.5, pos.z() + 0.5), blockStateToPlace.sounds().placeSound()); world.sendGameEvent(bukkitPlayer, GameEvent.BLOCK_PLACE, new Vector(pos.x(), pos.y(), pos.z())); return InteractionResult.SUCCESS; } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index 0763f2f44..c60fb6f0b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -10,6 +10,7 @@ import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.plugin.network.impl.*; import net.momirealms.craftengine.bukkit.plugin.user.BukkitServerPlayer; import net.momirealms.craftengine.bukkit.util.Reflections; +import net.momirealms.craftengine.bukkit.util.RegistryUtils; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.network.ConnectionState; import net.momirealms.craftengine.core.plugin.network.NetWorkUser; @@ -25,10 +26,13 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; @@ -158,6 +162,19 @@ public class BukkitNetworkManager implements NetworkManager, Listener { this.onlineUsers.remove(player.getUniqueId()); } + // for mod + @EventHandler + public void onPlayerRegisterChannel(PlayerRegisterChannelEvent event) { + if (!event.getChannel().equals(MOD_CHANNEL)) return; + Player player = event.getPlayer(); + NetWorkUser user = getUser(player); + if (user == null) return; + user.setClientModState(true); + int blockRegistrySize = RegistryUtils.currentBlockRegistrySize(); + byte[] payload = ("cp:" + blockRegistrySize).getBytes(StandardCharsets.UTF_8); + player.sendPluginMessage(plugin.bootstrap(), MOD_CHANNEL, payload); + } + @Override public Collection onlineUsers() { return onlineUsers.values(); @@ -167,6 +184,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener { public void init() { if (init) return; try { + plugin.bootstrap().getServer().getMessenger().registerOutgoingPluginChannel(plugin.bootstrap(), "craftengine:payload"); Object server = Reflections.method$MinecraftServer$getServer.invoke(null); Object serverConnection = Reflections.field$MinecraftServer$connection.get(server); @SuppressWarnings("unchecked") diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index ab80d70f4..8e315fc3a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -39,17 +39,21 @@ import java.util.function.Consumer; public class PacketConsumers { private static int[] mappings; + private static int[] mappingsMOD; private static IntIdentityList BLOCK_LIST; private static IntIdentityList BIOME_LIST; public static void init(Map map, int registrySize) { mappings = new int[registrySize]; - Arrays.fill(mappings, -1); for (int i = 0; i < registrySize; i++) { mappings[i] = i; } + mappingsMOD = Arrays.copyOf(mappings, registrySize); for (Map.Entry entry : map.entrySet()) { mappings[entry.getKey()] = entry.getValue(); + if (BlockStateUtils.isVanillaBlock(entry.getKey())) { + mappingsMOD[entry.getKey()] = entry.getValue(); + } } BLOCK_LIST = new IntIdentityList(registrySize); BIOME_LIST = new IntIdentityList(RegistryUtils.currentBiomeRegistrySize()); @@ -59,37 +63,73 @@ public class PacketConsumers { return mappings[stateId]; } + public static int remapMOD(int stateId) { + return mappingsMOD[stateId]; + } + public static final TriConsumer LEVEL_CHUNK_WITH_LIGHT = (user, event, packet) -> { try { - BukkitServerPlayer player = (BukkitServerPlayer) user; - Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet); - byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData); - ByteBuf buf = Unpooled.copiedBuffer(buffer); - FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(buf); - FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer()); - for (int i = 0, count = player.clientSideSectionCount(); i < count; i++) { - try { - MCSection mcSection = new MCSection(BLOCK_LIST, BIOME_LIST); - mcSection.readPacket(friendlyByteBuf); - PalettedContainer container = mcSection.blockStateContainer(); - Palette palette = container.data().palette(); - if (palette.canRemap()) { - palette.remap(PacketConsumers::remap); - } else { - for (int j = 0; j < 4096; j ++) { - int state = container.get(j); - int newState = remap(state); - if (newState != state) { - container.set(j, newState); + if (user.clientModEnabled()) { + BukkitServerPlayer player = (BukkitServerPlayer) user; + Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet); + byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData); + ByteBuf buf = Unpooled.copiedBuffer(buffer); + FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(buf); + FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer()); + for (int i = 0, count = player.clientSideSectionCount(); i < count; i++) { + try { + MCSection mcSection = new MCSection(BLOCK_LIST, BIOME_LIST); + mcSection.readPacket(friendlyByteBuf); + PalettedContainer container = mcSection.blockStateContainer(); + Palette palette = container.data().palette(); + if (palette.canRemap()) { + palette.remap(PacketConsumers::remapMOD); + } else { + for (int j = 0; j < 4096; j++) { + int state = container.get(j); + int newState = remapMOD(state); + if (newState != state) { + container.set(j, newState); + } } } + mcSection.writePacket(newBuf); + } catch (Exception e) { + break; } - mcSection.writePacket(newBuf); - } catch (Exception e) { - break; } + Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array()); + } else { + BukkitServerPlayer player = (BukkitServerPlayer) user; + Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet); + byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData); + ByteBuf buf = Unpooled.copiedBuffer(buffer); + FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(buf); + FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer()); + for (int i = 0, count = player.clientSideSectionCount(); i < count; i++) { + try { + MCSection mcSection = new MCSection(BLOCK_LIST, BIOME_LIST); + mcSection.readPacket(friendlyByteBuf); + PalettedContainer container = mcSection.blockStateContainer(); + Palette palette = container.data().palette(); + if (palette.canRemap()) { + palette.remap(PacketConsumers::remap); + } else { + for (int j = 0; j < 4096; j++) { + int state = container.get(j); + int newState = remap(state); + if (newState != state) { + container.set(j, newState); + } + } + } + mcSection.writePacket(newBuf); + } catch (Exception e) { + break; + } + } + Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array()); } - Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array()); } catch (Exception e) { CraftEngine.instance().logger().warn("Failed to handle ClientboundLevelChunkWithLightPacket", e); } @@ -97,24 +137,45 @@ public class PacketConsumers { public static final BiConsumer SECTION_BLOCK_UPDATE = (user, event) -> { try { - FriendlyByteBuf buf = event.getBuffer(); - long pos = buf.readLong(); - int blocks = buf.readVarInt(); - short[] positions = new short[blocks]; - int[] states = new int[blocks]; - for (int i = 0; i < blocks; i++) { - long k = buf.readVarLong(); - positions[i] = (short) ((int) (k & 4095L)); - states[i] = remap((int) (k >>> 12)); + if (user.clientModEnabled()) { + FriendlyByteBuf buf = event.getBuffer(); + long pos = buf.readLong(); + int blocks = buf.readVarInt(); + short[] positions = new short[blocks]; + int[] states = new int[blocks]; + for (int i = 0; i < blocks; i++) { + long k = buf.readVarLong(); + positions[i] = (short) ((int) (k & 4095L)); + states[i] = remapMOD((int) (k >>> 12)); + } + buf.clear(); + buf.writeVarInt(event.packetID()); + buf.writeLong(pos); + buf.writeVarInt(blocks); + for (int i = 0; i < blocks; i++) { + buf.writeVarLong((long) states[i] << 12 | positions[i]); + } + event.setChanged(true); + } else { + FriendlyByteBuf buf = event.getBuffer(); + long pos = buf.readLong(); + int blocks = buf.readVarInt(); + short[] positions = new short[blocks]; + int[] states = new int[blocks]; + for (int i = 0; i < blocks; i++) { + long k = buf.readVarLong(); + positions[i] = (short) ((int) (k & 4095L)); + states[i] = remap((int) (k >>> 12)); + } + buf.clear(); + buf.writeVarInt(event.packetID()); + buf.writeLong(pos); + buf.writeVarInt(blocks); + for (int i = 0; i < blocks; i++) { + buf.writeVarLong((long) states[i] << 12 | positions[i]); + } + event.setChanged(true); } - buf.clear(); - buf.writeVarInt(event.packetID()); - buf.writeLong(pos); - buf.writeVarInt(blocks); - for (int i = 0; i < blocks; i ++) { - buf.writeVarLong((long) states[i] << 12 | positions[i]); - } - event.setChanged(true); } catch (Exception e) { CraftEngine.instance().logger().warn("Failed to handle ClientboundSectionBlocksUpdatePacket", e); } @@ -125,6 +186,9 @@ public class PacketConsumers { FriendlyByteBuf buf = event.getBuffer(); BlockPos pos = buf.readBlockPos(buf); int before = buf.readVarInt(); + if (user.clientModEnabled() && !BlockStateUtils.isVanillaBlock(before)) { + return; + } int state = remap(before); if (state == before) { return; @@ -666,10 +730,15 @@ public class PacketConsumers { // we handle it on packet level to prevent it from being captured by plugins public static final TriConsumer RENAME_ITEM = (user, event, packet) -> { try { + if (!ConfigManager.filterAnvil()) return; String message = (String) Reflections.field$ServerboundRenameItemPacket$name.get(packet); if (message != null && !message.isEmpty()) { ImageManager manager = CraftEngine.instance().imageManager(); if (!manager.isDefaultFontInUse()) return; + // check bypass + if (((BukkitServerPlayer) user).hasPermission(ImageManager.BYPASS_ANVIL)) { + return; + } runIfContainsIllegalCharacter(message, manager, (s) -> { try { Reflections.field$ServerboundRenameItemPacket$name.set(packet, s); @@ -686,9 +755,14 @@ public class PacketConsumers { // we handle it on packet level to prevent it from being captured by plugins public static final TriConsumer SIGN_UPDATE = (user, event, packet) -> { try { + if (!ConfigManager.filterSign()) return; String[] lines = (String[]) Reflections.field$ServerboundSignUpdatePacket$lines.get(packet); ImageManager manager = CraftEngine.instance().imageManager(); if (!manager.isDefaultFontInUse()) return; + // check bypass + if (((BukkitServerPlayer) user).hasPermission(ImageManager.BYPASS_SIGN)) { + return; + } for (int i = 0; i < lines.length; i++) { String line = lines[i]; if (line != null && !line.isEmpty()) { @@ -708,8 +782,13 @@ public class PacketConsumers { @SuppressWarnings("unchecked") public static final TriConsumer EDIT_BOOK = (user, event, packet) -> { try { + if (!ConfigManager.filterBook()) return; ImageManager manager = CraftEngine.instance().imageManager(); if (!manager.isDefaultFontInUse()) return; + // check bypass + if (((BukkitServerPlayer) user).hasPermission(ImageManager.BYPASS_BOOK)) { + return; + } boolean changed = false; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 07e3fccad..84698bc75 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -63,7 +63,9 @@ public class BukkitServerPlayer extends Player { private Key lastUsedRecipe = null; - private Map> furnitureView = new ConcurrentHashMap<>(); + private boolean hasClientMod = false; + // for better fake furniture visual sync + private final Map> furnitureView = new ConcurrentHashMap<>(); public BukkitServerPlayer(BukkitCraftEngine plugin, Channel channel) { this.channel = channel; @@ -616,4 +618,12 @@ public class BukkitServerPlayer extends Player { public void setLastUsedRecipe(Key lastUsedRecipe) { this.lastUsedRecipe = lastUsedRecipe; } + + public boolean clientModEnabled() { + return this.hasClientMod; + } + + public void setClientModState(boolean enable) { + this.hasClientMod = enable; + } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java index d0819e6b6..ac175461c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/Reflections.java @@ -707,6 +707,19 @@ public class Reflections { ) ); + public static final Class clazz$SynchedEntityData = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("network.syncher.SynchedEntityData"), + BukkitReflectionUtils.assembleMCClass("network.syncher.DataWatcher") + ) + ); + + public static final Method method$SynchedEntityData$get = requireNonNull( + ReflectionUtils.getMethod( + clazz$SynchedEntityData, Object.class, clazz$EntityDataAccessor + ) + ); + public static final Class clazz$SynchedEntityData$DataValue = requireNonNull( ReflectionUtils.getClazz( BukkitReflectionUtils.assembleMCClass("network.syncher.SynchedEntityData$DataValue"), @@ -1823,6 +1836,12 @@ public class Reflections { ) ); + public static final Method method$LevelChunkSection$getBlockState = requireNonNull( + ReflectionUtils.getMethod( + clazz$LevelChunkSection, clazz$BlockState, int.class, int.class, int.class + ) + ); + public static final Class clazz$StatePredicate = requireNonNull( ReflectionUtils.getClazz( BukkitReflectionUtils.assembleMCClass("world.level.block.state.BlockBehaviour$StatePredicate"), @@ -5371,4 +5390,85 @@ public class Reflections { throw new RuntimeException(e); } } + + public static final Class clazz$SingleValuePalette = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("world.level.chunk.SingleValuePalette") + ) + ); + + public static final Field field$SingleValuePalette$value = requireNonNull( + ReflectionUtils.getDeclaredField( + clazz$SingleValuePalette, Object.class, 0 + ) + ); + + public static final Class clazz$HashMapPalette = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("world.level.chunk.HashMapPalette"), + BukkitReflectionUtils.assembleMCClass("world.level.chunk.DataPaletteHash") + ) + ); + + public static final Class clazz$CrudeIncrementalIntIdentityHashBiMap = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("util.CrudeIncrementalIntIdentityHashBiMap"), + BukkitReflectionUtils.assembleMCClass("util.RegistryID") + ) + ); + + public static final Field field$CrudeIncrementalIntIdentityHashBiMap$keys = requireNonNull( + ReflectionUtils.getDeclaredField( + clazz$CrudeIncrementalIntIdentityHashBiMap, Object.class.arrayType(), 0 + ) + ); + + public static final Field field$HashMapPalette$values = requireNonNull( + ReflectionUtils.getDeclaredField( + clazz$HashMapPalette, clazz$CrudeIncrementalIntIdentityHashBiMap, 0 + ) + ); + + public static final Class clazz$LinearPalette = requireNonNull( + ReflectionUtils.getClazz( + BukkitReflectionUtils.assembleMCClass("world.level.chunk.LinearPalette"), + BukkitReflectionUtils.assembleMCClass("world.level.chunk.DataPaletteLinear") + ) + ); + + public static final Field field$LinearPalette$values = requireNonNull( + ReflectionUtils.getDeclaredField( + clazz$LinearPalette, Object.class.arrayType(), 0 + ) + ); + + public static final Object instance$Entity$DATA_SILENT; + + static { + int i = 0; + Field targetField = null; + for (Field field : clazz$Entity.getDeclaredFields()) { + Type fieldType = field.getGenericType(); + if (field.getType() == clazz$EntityDataAccessor && fieldType instanceof ParameterizedType paramType) { + if (paramType.getActualTypeArguments()[0] == Boolean.class) { + i++; + if (i == 2) { + targetField = field; + break; + } + } + } + } + try { + instance$Entity$DATA_SILENT = ReflectionUtils.setAccessible(requireNonNull(targetField)).get(null); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } + + public static final Field field$Entity$entityData = requireNonNull( + ReflectionUtils.getDeclaredField( + clazz$Entity, clazz$SynchedEntityData, 0 + ) + ); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/SoundUtils.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/SoundUtils.java index b5fca65a4..25d00d02e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/SoundUtils.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/SoundUtils.java @@ -10,11 +10,11 @@ public class SoundUtils { public static Object toSoundType(BlockSounds sounds) throws ReflectiveOperationException { return Reflections.constructor$SoundType.newInstance( 1f, 1f, - getOrRegisterSoundEvent(sounds.breakSound()), - getOrRegisterSoundEvent(sounds.stepSound()), - getOrRegisterSoundEvent(sounds.placeSound()), - getOrRegisterSoundEvent(sounds.hitSound()), - getOrRegisterSoundEvent(sounds.fallSound()) + getOrRegisterSoundEvent(sounds.breakSound().id()), + getOrRegisterSoundEvent(sounds.stepSound().id()), + getOrRegisterSoundEvent(sounds.placeSound().id()), + getOrRegisterSoundEvent(sounds.hitSound().id()), + getOrRegisterSoundEvent(sounds.fallSound().id()) ); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java index d5bc16d95..8b6a9a69c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/world/BukkitWorldManager.java @@ -2,6 +2,7 @@ package net.momirealms.craftengine.bukkit.world; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import net.momirealms.craftengine.bukkit.plugin.injector.BukkitInjector; +import net.momirealms.craftengine.bukkit.util.BlockStateUtils; import net.momirealms.craftengine.bukkit.util.Reflections; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.plugin.config.ConfigManager; @@ -253,6 +254,55 @@ public class BukkitWorldManager implements WorldManager, Listener { for (int i = 0; i < ceSections.length; i++) { CESection ceSection = ceSections[i]; Object section = sections[i]; + if (ConfigManager.syncCustomBlocks()) { + Object statesContainer = Reflections.field$LevelChunkSection$states.get(section); + Object data = Reflections.field$PalettedContainer$data.get(statesContainer); + Object palette = Reflections.field$PalettedContainer$Data$palette.get(data); + boolean requiresSync = false; + if (Reflections.clazz$SingleValuePalette.isInstance(palette)) { + Object onlyBlockState = Reflections.field$SingleValuePalette$value.get(palette); + if (!BlockStateUtils.isVanillaBlock(BlockStateUtils.blockStateToId(onlyBlockState))) { + requiresSync = true; + } + } else if (Reflections.clazz$LinearPalette.isInstance(palette)) { + Object[] blockStates = (Object[]) Reflections.field$LinearPalette$values.get(palette); + for (Object blockState : blockStates) { + if (blockState != null) { + if (!BlockStateUtils.isVanillaBlock(BlockStateUtils.blockStateToId(blockState))) { + requiresSync = true; + break; + } + } + } + } else if (Reflections.clazz$HashMapPalette.isInstance(palette)) { + Object biMap = Reflections.field$HashMapPalette$values.get(palette); + Object[] blockStates = (Object[]) Reflections.field$CrudeIncrementalIntIdentityHashBiMap$keys.get(biMap); + for (Object blockState : blockStates) { + if (blockState != null) { + if (!BlockStateUtils.isVanillaBlock(BlockStateUtils.blockStateToId(blockState))) { + requiresSync = true; + break; + } + } + } + } else { + requiresSync = true; + } + if (requiresSync) { + for (int x = 0; x < 16; x++) { + for (int z = 0; z < 16; z++) { + for (int y = 0; y < 16; y++) { + Object mcState = Reflections.method$LevelChunkSection$getBlockState.invoke(section, x, y, z); + int stateId = BlockStateUtils.blockStateToId(mcState); + ImmutableBlockState customState = this.plugin.blockManager().getImmutableBlockState(stateId); + if (customState != null) { + ceSection.setBlockState(x, y, z, customState); + } + } + } + } + } + } if (ConfigManager.restoreCustomBlocks()) { if (!ceSection.statesContainer().isEmpty()) { for (int x = 0; x < 16; x++) { @@ -286,4 +336,6 @@ public class BukkitWorldManager implements WorldManager, Listener { } ceChunk.load(); } + + } diff --git a/client-mod/build.gradle.kts b/client-mod/build.gradle.kts new file mode 100644 index 000000000..e662f9c3e --- /dev/null +++ b/client-mod/build.gradle.kts @@ -0,0 +1,109 @@ +plugins { + id("fabric-loom") version "1.10-SNAPSHOT" + id("com.gradleup.shadow") version "9.0.0-beta11" +} + +version = property("project_version")!! +group = property("project_group")!! +val project_version: String by project +val latest_minecraft_version: String by project +val loader_version: String by project +var modmenu_version = property("modmenu_version") +var cloth_version = property("cloth_version") + +base { + archivesName.set("craft-engine-fabric-mod") +} + +sourceSets { + create("client") { + compileClasspath += sourceSets.main.get().compileClasspath + runtimeClasspath += sourceSets.main.get().runtimeClasspath + } + main { + compileClasspath += sourceSets["client"].output + runtimeClasspath += sourceSets["client"].output + output.dir(sourceSets["client"].output) + } +} + +tasks.shadowJar { + relocate("org.yaml", "net.momirealms.craftengine.libraries.org.yaml") + configurations = listOf(project.configurations.getByName("shadow")) + archiveFileName.set("${base.archivesName.get()}-${project.version}-shadow.jar") + from(sourceSets.main.get().output) + from(sourceSets["client"].output) +} + +tasks.remapJar { + dependsOn(tasks.shadowJar) + inputFile.set(tasks.shadowJar.get().archiveFile) + + destinationDirectory.set(file("$rootDir/target")) + archiveFileName.set("${base.archivesName.get()}-${project.version}.jar") +} + +loom { + mods { + create("craft-engine-fabric-mod") { + sourceSet(sourceSets.main.get()) + sourceSet(sourceSets["client"]) + } + } +} + +repositories { + maven("https://maven.shedaniel.me/") + maven("https://maven.terraformersmc.com/releases/") +} + +dependencies { + minecraft("com.mojang:minecraft:${property("latest_minecraft_version")}") + mappings("net.fabricmc:yarn:${property("yarn_mappings")}:v2") + modImplementation("net.fabricmc:fabric-loader:${property("loader_version")}") + modImplementation("net.fabricmc.fabric-api:fabric-api:${property("fabric_version")}") + modApi("me.shedaniel.cloth:cloth-config-fabric:${property("cloth_version")}") + modApi("com.terraformersmc:modmenu:${property("modmenu_version")}") + add("shadow", "org.yaml:snakeyaml:2.4") +} + +tasks.processResources { + inputs.property("version", project_version) + inputs.property("minecraft_version", latest_minecraft_version) + inputs.property("loader_version", loader_version) + + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project_version, + "minecraft_version" to latest_minecraft_version, + "loader_version" to loader_version, + "modmenu_version" to modmenu_version, + "cloth_version" to cloth_version + ) + } +} + +val targetJavaVersion = 21 +tasks.withType().configureEach { + options.encoding = "UTF-8" + if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible) { + options.release.set(targetJavaVersion) + } +} + +java { + val javaVersion = JavaVersion.toVersion(targetJavaVersion) + if (JavaVersion.current() < javaVersion) { + toolchain { + languageVersion.set(JavaLanguageVersion.of(targetJavaVersion)) + } + } + withSourcesJar() +} + +tasks.build { + dependsOn(tasks.clean) + dependsOn(tasks.shadowJar) +} \ No newline at end of file diff --git a/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/CraftEngineFabricModClient.java b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/CraftEngineFabricModClient.java new file mode 100644 index 000000000..04198be2a --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/CraftEngineFabricModClient.java @@ -0,0 +1,72 @@ +package net.momirealms.craftengine.fabric.client; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.color.world.BiomeColors; +import net.minecraft.client.gui.screen.DisconnectedScreen; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.registry.Registries; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.util.crash.CrashReport; +import net.minecraft.world.biome.FoliageColors; +import net.momirealms.craftengine.fabric.client.config.ModConfig; +import net.momirealms.craftengine.fabric.client.network.CraftEnginePayload; + +import java.nio.charset.StandardCharsets; + +public class CraftEngineFabricModClient implements ClientModInitializer { + public static final String MOD_ID = "craftengine"; + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playS2C().register(CraftEnginePayload.ID, CraftEnginePayload.CODEC); + Registries.BLOCK.forEach(block -> { + Identifier id = Registries.BLOCK.getId(block); + if (id.getNamespace().equals(CraftEngineFabricModClient.MOD_ID)) { + BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getCutoutMipped()); + if (id.getPath().contains("leaves")) { + registerColor(block); + } + } + }); + ClientTickEvents.START_CLIENT_TICK.register(client -> { + if (!ModConfig.enableNetwork) { + ClientPlayNetworking.unregisterGlobalReceiver(CraftEnginePayload.ID.id()); + return; + } + ClientPlayNetworking.registerGlobalReceiver(CraftEnginePayload.ID, (payload, context) -> { + byte[] data = payload.data(); + String decoded = new String(data, StandardCharsets.UTF_8); + if (decoded.startsWith("cp:")) { + int blockRegistrySize = Integer.parseInt(decoded.substring(3)); + if (Block.STATE_IDS.size() != blockRegistrySize) { + client.disconnect(new DisconnectedScreen( + client.currentScreen, + Text.translatable("disconnect.craftengine.title"), + Text.translatable("disconnect.craftengine.block_registry_mismatch", Block.STATE_IDS.size(), blockRegistrySize)) + ); + } + } + }); + }); + } + + public static void registerColor(Block block) { + ColorProviderRegistry.BLOCK.register( + (state, world, pos, tintIndex) -> { + if (world != null && pos != null) { + return BiomeColors.getFoliageColor(world, pos); + } + return FoliageColors.DEFAULT; + }, + block + ); + } +} diff --git a/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModConfig.java b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModConfig.java new file mode 100644 index 000000000..6546896d6 --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModConfig.java @@ -0,0 +1,35 @@ +package net.momirealms.craftengine.fabric.client.config; + +import me.shedaniel.clothconfig2.api.ConfigBuilder; +import me.shedaniel.clothconfig2.api.ConfigCategory; +import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; + +public class ModConfig { + public static boolean enableNetwork = true; + + public static Screen getConfigScreen(Screen parent) { + ConfigBuilder builder = ConfigBuilder.create() + .setParentScreen(parent) + .setTitle(Text.translatable("title.craftengine.config")); + + ConfigCategory general = builder.getOrCreateCategory(Text.translatable("category.craftengine.general")); + ConfigEntryBuilder entryBuilder = builder.entryBuilder(); + + general.addEntry(entryBuilder.startBooleanToggle( + Text.translatable("option.craftengine.enable_network") + .formatted(Formatting.WHITE), + enableNetwork) + .setDefaultValue(true) + .setSaveConsumer(newValue -> enableNetwork = newValue) + .setTooltip( + Text.translatable("tooltip.craftengine.enable_network") + .formatted(Formatting.GRAY) + ) + .build()); + + return builder.build(); + } +} diff --git a/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModMenuIntegration.java b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModMenuIntegration.java new file mode 100644 index 000000000..7378fe979 --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/config/ModMenuIntegration.java @@ -0,0 +1,11 @@ +package net.momirealms.craftengine.fabric.client.config; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; + +public class ModMenuIntegration implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return ModConfig::getConfigScreen; + } +} diff --git a/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/ByteArrayCodec.java b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/ByteArrayCodec.java new file mode 100644 index 000000000..314baa358 --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/ByteArrayCodec.java @@ -0,0 +1,20 @@ +package net.momirealms.craftengine.fabric.client.network; + +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; + +public class ByteArrayCodec implements PacketCodec { + + @Override + public void encode(RegistryByteBuf buf, byte[] value) { + buf.writeBytes(value); + } + + @Override + public byte[] decode(RegistryByteBuf buf) { + int length = buf.readableBytes(); + byte[] data = new byte[length]; + buf.readBytes(data); + return data; + } +} \ No newline at end of file diff --git a/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/CraftEnginePayload.java b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/CraftEnginePayload.java new file mode 100644 index 000000000..b8b27ff44 --- /dev/null +++ b/client-mod/src/client/java/net/momirealms/craftengine/fabric/client/network/CraftEnginePayload.java @@ -0,0 +1,20 @@ +package net.momirealms.craftengine.fabric.client.network; + +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.packet.CustomPayload; +import net.minecraft.util.Identifier; + +public record CraftEnginePayload(byte[] data) implements CustomPayload { + public static final Identifier ADD_CRAFTENGINE_BLOCK = Identifier.of("craftengine", "payload"); + public static final Id ID = new Id<>(CraftEnginePayload.ADD_CRAFTENGINE_BLOCK); + public static final PacketCodec CODEC = PacketCodec.tuple( + new ByteArrayCodec(), CraftEnginePayload::data, + CraftEnginePayload::new + ); + + @Override + public Id getId() { + return ID; + } +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/CraftEngineFabricMod.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/CraftEngineFabricMod.java new file mode 100644 index 000000000..1b599bc5d --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/CraftEngineFabricMod.java @@ -0,0 +1,77 @@ +package net.momirealms.craftengine.fabric; + +import net.fabricmc.api.ModInitializer; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.block.BlockState; +import net.minecraft.util.Identifier; +import net.momirealms.craftengine.fabric.client.config.ModConfig; +import net.momirealms.craftengine.fabric.util.BlockUtils; +import net.momirealms.craftengine.fabric.util.LoggerFilter; +import net.momirealms.craftengine.fabric.util.RegisterBlocks; +import net.momirealms.craftengine.fabric.util.YamlUtils; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.Yaml; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; + +public class CraftEngineFabricMod implements ModInitializer { + private static final Path CONFIG_PATH = FabricLoader.getInstance().getConfigDir().resolve("craft-engine-fabric-mod/config.yml"); + public static final String MOD_ID = "craftengine"; + + @Override + public void onInitialize() { + loadConfig(); + LoggerFilter.filter(); + try { + YamlUtils.saveDefaultResource("additional-real-blocks.yml"); + YamlUtils.saveDefaultResource("mappings.yml"); + Map map = YamlUtils.loadMappingsAndAdditionalBlocks(); + for (Map.Entry entry : map.entrySet()) { + Identifier replacedBlockId = entry.getKey(); + for (int i = 0; i < entry.getValue(); i++) { + BlockState blockState = YamlUtils.createBlockData("minecraft:" + replacedBlockId.getPath()); + RegisterBlocks.register( + replacedBlockId.getPath() + "_" + i, + BlockUtils.canPassThrough(blockState) + ); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + Runtime.getRuntime().addShutdownHook(new Thread(this::saveConfig)); + } + + @SuppressWarnings("unchecked") + private void loadConfig() { + if (!Files.exists(CONFIG_PATH)) { + ModConfig.enableNetwork = true; + return; + } + try (InputStream inputStream = Files.newInputStream(CONFIG_PATH)) { + Yaml yaml = new Yaml(); + var config = yaml.loadAs(inputStream, java.util.Map.class); + ModConfig.enableNetwork = (Boolean) config.getOrDefault("enable-network", true); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void saveConfig() { + DumperOptions options = new DumperOptions(); + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + Yaml yaml = new Yaml(options); + var data = new java.util.HashMap(); + data.put("enable-network", ModConfig.enableNetwork); + try (Writer writer = Files.newBufferedWriter(CONFIG_PATH)) { + yaml.dump(data, writer); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/BlockUtils.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/BlockUtils.java new file mode 100644 index 000000000..3dc205eae --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/BlockUtils.java @@ -0,0 +1,46 @@ +package net.momirealms.craftengine.fabric.util; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.lang.reflect.AccessibleObject; +import java.lang.reflect.Field; + +import static java.util.Objects.requireNonNull; + +public class BlockUtils { + private final static Field COLLIDABLE_FIELD = requireNonNull(getDeclaredField(AbstractBlock.Settings.class, boolean.class, 0)); + + @Nullable + public static Field getDeclaredField(final Class clazz, final Class type, int index) { + int i = 0; + for (final Field field : clazz.getDeclaredFields()) { + if (field.getType() == type) { + if (index == i) { + return setAccessible(field); + } + i++; + } + } + return null; + } + + @NotNull + public static T setAccessible(@NotNull final T o) { + o.setAccessible(true); + return o; + } + + public static boolean canPassThrough(BlockState state) { + try { + if (state == null) return false; + AbstractBlock.Settings settings = state.getBlock().getSettings(); + boolean collidable = COLLIDABLE_FIELD.getBoolean(settings); + return !collidable; + } catch (IllegalAccessException e) { + throw new RuntimeException("Failed to access 'collidable' field", e); + } + } +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/LoggerFilter.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/LoggerFilter.java new file mode 100644 index 000000000..2dc648a6a --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/LoggerFilter.java @@ -0,0 +1,21 @@ +package net.momirealms.craftengine.fabric.util; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.Logger; +import org.apache.logging.log4j.core.filter.AbstractFilter; + +public class LoggerFilter { + public static void filter() { + Logger rootLogger = (Logger) LogManager.getRootLogger(); + rootLogger.addFilter(new AbstractFilter() { + @Override + public Result filter(LogEvent event) { + if (event.getMessage().getFormattedMessage().contains("Missing model for variant: 'craftengine:")) { + return Result.DENY; + } + return Result.NEUTRAL; + } + }); + } +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/RegisterBlocks.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/RegisterBlocks.java new file mode 100644 index 000000000..f53152557 --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/RegisterBlocks.java @@ -0,0 +1,33 @@ +package net.momirealms.craftengine.fabric.util; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; +import net.momirealms.craftengine.fabric.CraftEngineFabricMod; + +import java.util.function.Function; + +public class RegisterBlocks { + @SuppressWarnings("UnusedReturnValue") + public static Block register(String name, boolean canPassThrough) { + AbstractBlock.Settings settings = Block.Settings.create().nonOpaque().strength(-1.0F, 3600000.0F); + if (canPassThrough) settings.noCollision(); + return register(name, Block::new, settings); + } + + public static Block register(String name, Function blockFactory, AbstractBlock.Settings settings) { + RegistryKey blockKey = keyOfBlock(name); + Block block = blockFactory.apply(settings.registryKey(blockKey)); + + return Registry.register(Registries.BLOCK, blockKey, block); + } + + private static RegistryKey keyOfBlock(String name) { + return RegistryKey.of(RegistryKeys.BLOCK, Identifier.of(CraftEngineFabricMod.MOD_ID, name)); + } + +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/StringKeyConstructor.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/StringKeyConstructor.java new file mode 100644 index 000000000..2b0496bdd --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/StringKeyConstructor.java @@ -0,0 +1,31 @@ +package net.momirealms.craftengine.fabric.util; + +import org.yaml.snakeyaml.LoaderOptions; +import org.yaml.snakeyaml.constructor.SafeConstructor; +import org.yaml.snakeyaml.nodes.MappingNode; +import org.yaml.snakeyaml.nodes.Node; +import org.yaml.snakeyaml.nodes.NodeTuple; +import org.yaml.snakeyaml.nodes.ScalarNode; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class StringKeyConstructor extends SafeConstructor { + + public StringKeyConstructor(LoaderOptions loaderOptions) { + super(loaderOptions); + } + + @Override + protected Map constructMapping(MappingNode node) { + Map map = new LinkedHashMap<>(); + for (NodeTuple tuple : node.getValue()) { + Node keyNode = tuple.getKeyNode(); + Node valueNode = tuple.getValueNode(); + String key = constructScalar((ScalarNode) keyNode); + Object value = constructObject(valueNode); + map.put(key, value); + } + return map; + } +} diff --git a/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/YamlUtils.java b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/YamlUtils.java new file mode 100644 index 000000000..e10175ced --- /dev/null +++ b/client-mod/src/main/java/net/momirealms/craftengine/fabric/util/YamlUtils.java @@ -0,0 +1,119 @@ +package net.momirealms.craftengine.fabric.util; + +import com.mojang.brigadier.StringReader; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.command.argument.BlockArgumentParser; +import net.minecraft.registry.BuiltinRegistries; +import net.minecraft.registry.Registries; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.util.Identifier; +import org.yaml.snakeyaml.LoaderOptions; +import org.yaml.snakeyaml.Yaml; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +public class YamlUtils { + public static final Path CONFIG_DIR = Path.of("config/craft-engine-fabric-mod/"); + private static final RegistryWrapper registryWrapper = BuiltinRegistries.createWrapperLookup().getOrThrow(RegistryKeys.BLOCK); + + public static T loadConfig(Path filePath) throws IOException { + if (!Files.exists(filePath)) { + throw new FileNotFoundException(filePath.toString()); + } + try (InputStream inputStream = Files.newInputStream(filePath)) { + Yaml yaml = new Yaml(new StringKeyConstructor(new LoaderOptions())); + return yaml.load(inputStream); + } + } + + public static void saveDefaultResource(String fileName) throws IOException { + if (!Files.exists(CONFIG_DIR)) { + Files.createDirectories(CONFIG_DIR); + } + + Path targetPath = CONFIG_DIR.resolve(fileName); + if (Files.exists(targetPath)) return; + String resourcePath = "assets/craft-engine-fabric-mod/config/" + fileName; + try (InputStream inputStream = YamlUtils.class.getClassLoader().getResourceAsStream(resourcePath)) { + if (inputStream == null) { + throw new IOException("Default config file not found: " + resourcePath); + } + Files.copy(inputStream, targetPath, StandardCopyOption.REPLACE_EXISTING); + } + } + + public static Map loadMappingsAndAdditionalBlocks() throws IOException { + Path mappingPath = CONFIG_DIR.resolve("mappings.yml"); + Path additionalYamlPath = CONFIG_DIR.resolve("additional-real-blocks.yml"); + Map blockStateMappings = loadConfig(mappingPath); + validateBlockStateMappings(blockStateMappings); + Map blockTypeCounter = new LinkedHashMap<>(); + Map appearanceMapper = new HashMap<>(); + for (Map.Entry entry : blockStateMappings.entrySet()) { + processBlockStateMapping(entry, appearanceMapper, blockTypeCounter); + } + Map additionalYaml = loadConfig(additionalYamlPath); + return buildRegisteredRealBlockSlots(blockTypeCounter, additionalYaml); + } + + private static void validateBlockStateMappings(Map blockStateMappings) { + Map temp = new HashMap<>(blockStateMappings); + for (Map.Entry entry : temp.entrySet()) { + String state = entry.getValue(); + blockStateMappings.remove(state); + } + } + + private static void processBlockStateMapping( + Map.Entry entry, + Map stateIdMapper, + Map blockUsageCounter + ) { + final BlockState sourceState = createBlockData(entry.getKey()); + final BlockState targetState = createBlockData(entry.getValue()); + + if (sourceState == null || targetState == null) { + return; + } + + final int sourceStateId = Block.STATE_IDS.getRawId(sourceState); + final int targetStateId = Block.STATE_IDS.getRawId(targetState); + + if (stateIdMapper.putIfAbsent(sourceStateId, targetStateId) == null) { + final Block sourceBlock = sourceState.getBlock(); + final Identifier blockId = Registries.BLOCK.getId(sourceBlock); + blockUsageCounter.merge(blockId, 1, Integer::sum); + } + } + + public static BlockState createBlockData(String blockState) { + try { + StringReader reader = new StringReader(blockState); + BlockArgumentParser.BlockResult arg = BlockArgumentParser.block(registryWrapper, reader, true); + return arg.blockState(); + } catch (Exception e) { + return null; + } + } + + private static LinkedHashMap buildRegisteredRealBlockSlots(Map counter, Map additionalYaml) { + LinkedHashMap map = new LinkedHashMap<>(); + for (Map.Entry entry : counter.entrySet()) { + String id = entry.getKey().toString(); + Integer additionalStates = additionalYaml.get(id); + int internalIds = entry.getValue() + (additionalStates != null ? additionalStates : 0); + map.put(entry.getKey(), internalIds); + } + return map; + } +} diff --git a/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/additional-real-blocks.yml b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/additional-real-blocks.yml new file mode 100644 index 000000000..91993a87d --- /dev/null +++ b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/additional-real-blocks.yml @@ -0,0 +1,28 @@ +# This file will register an additional number of block states to the server, based on the mappings defined in mappings.yml. +# If you're unsure what this means, you can read the following explanation below. + +# Suppose you create a new type of leaf, but its appearance has only two states (waterlogged and normal). +# However, because of the defined properties such as distance, persistent, and waterlogged, it requires at least 2x2x7 = 28 different block states. +# By default, the plugin only registers the same number of block states as those defined in the mappings.yml file. +# Therefore, during actual configuration, you will notice that the internal IDs are insufficient +# (without configuring additional-real-block, one type of leaf can only provide 26 states, whereas creating a new leaf requires 28 states). +# The purpose of this file is to register additional block states with the server when starting it, ensuring the correct mapping between real blocks and the visual appearance of fake blocks on the server. + +# Some common questions: +# Q: Do I need to restart the server for the changes to take effect? +# A: Yes! Modifying the block registry while the server is running is extremely risky. +# Q: When do I need to configure this file? +# A: When the number of real block IDs is insufficient, but there are still available appearances. + +# By default, the plugin only registers an additional 112 oak leaf block states (for the default configuration needs [>=28 states]). +minecraft:oak_leaves: 112 + +minecraft:oak_sapling: 1 +minecraft:birch_sapling: 1 +minecraft:spruce_sapling: 1 +minecraft:jungle_sapling: 1 +minecraft:dark_oak_sapling: 1 +minecraft:acacia_sapling: 1 +minecraft:cherry_sapling: 1 + +minecraft:anvil: 2 \ No newline at end of file diff --git a/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/mappings.yml b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/mappings.yml new file mode 100644 index 000000000..b21e18b19 --- /dev/null +++ b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/config/mappings.yml @@ -0,0 +1,2033 @@ +######################################################################################################################################################################################################################## +# Anvil Block +minecraft:anvil[facing=north]: minecraft:anvil[facing=south] +minecraft:anvil[facing=east]: minecraft:anvil[facing=west] +######################################################################################################################################################################################################################## +# Sapling Block +minecraft:oak_sapling[stage=1]: minecraft:oak_sapling[stage=0] +minecraft:birch_sapling[stage=1]: minecraft:birch_sapling[stage=0] +minecraft:spruce_sapling[stage=1]: minecraft:spruce_sapling[stage=0] +minecraft:jungle_sapling[stage=1]: minecraft:jungle_sapling[stage=0] +minecraft:dark_oak_sapling[stage=1]: minecraft:dark_oak_sapling[stage=0] +minecraft:acacia_sapling[stage=1]: minecraft:acacia_sapling[stage=0] +minecraft:cherry_sapling[stage=1]: minecraft:cherry_sapling[stage=0] +######################################################################################################################################################################################################################## +# Mushroom Block +#minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]# +minecraft:mushroom_stem[down=false,east=false,north=false,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=false,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=false,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=false,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=false]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=false,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=false,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=true,south=false,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=false,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=false,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=false,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=true,north=false,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=false,north=true,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=true,east=false,north=true,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:mushroom_stem[down=false,east=true,north=true,south=true,up=true,west=true]: minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true] +#minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]# +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=false,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=false,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=false,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=false]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=false,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=false,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=true,south=false,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=false,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=true,north=false,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=false,north=true,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=true,east=false,north=true,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:brown_mushroom_block[down=false,east=true,north=true,south=true,up=true,west=true]: minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +#minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]# +minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=false,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=false,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=false,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=false]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=false,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=false,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=true,south=false,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=false,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=true,north=false,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=false,north=true,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=true,east=false,north=true,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:red_mushroom_block[down=false,east=true,north=true,south=true,up=true,west=true]: minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true] +######################################################################################################################################################################################################################## +# Kelp +#minecraft:kelp[age=0]: minecraft:kelp[age=0]# +minecraft:kelp[age=1]: minecraft:kelp[age=0] +minecraft:kelp[age=2]: minecraft:kelp[age=0] +minecraft:kelp[age=3]: minecraft:kelp[age=0] +minecraft:kelp[age=4]: minecraft:kelp[age=0] +minecraft:kelp[age=5]: minecraft:kelp[age=0] +minecraft:kelp[age=6]: minecraft:kelp[age=0] +minecraft:kelp[age=7]: minecraft:kelp[age=0] +minecraft:kelp[age=8]: minecraft:kelp[age=0] +minecraft:kelp[age=9]: minecraft:kelp[age=0] +minecraft:kelp[age=10]: minecraft:kelp[age=0] +minecraft:kelp[age=11]: minecraft:kelp[age=0] +minecraft:kelp[age=12]: minecraft:kelp[age=0] +minecraft:kelp[age=13]: minecraft:kelp[age=0] +minecraft:kelp[age=14]: minecraft:kelp[age=0] +minecraft:kelp[age=15]: minecraft:kelp[age=0] +minecraft:kelp[age=16]: minecraft:kelp[age=0] +minecraft:kelp[age=17]: minecraft:kelp[age=0] +minecraft:kelp[age=18]: minecraft:kelp[age=0] +minecraft:kelp[age=19]: minecraft:kelp[age=0] +minecraft:kelp[age=20]: minecraft:kelp[age=0] +minecraft:kelp[age=21]: minecraft:kelp[age=0] +minecraft:kelp[age=22]: minecraft:kelp[age=0] +minecraft:kelp[age=23]: minecraft:kelp[age=0] +minecraft:kelp[age=24]: minecraft:kelp[age=0] +minecraft:kelp[age=25]: minecraft:kelp[age=0] +######################################################################################################################################################################################################################## +# Weeping Vines +#minecraft:weeping_vines[age=0]: minecraft:weeping_vines[age=0]# +minecraft:weeping_vines[age=1]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=2]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=3]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=4]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=5]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=6]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=7]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=8]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=9]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=10]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=11]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=12]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=13]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=14]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=15]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=16]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=17]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=18]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=19]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=20]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=21]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=22]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=23]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=24]: minecraft:weeping_vines[age=0] +minecraft:weeping_vines[age=25]: minecraft:weeping_vines[age=0] +######################################################################################################################################################################################################################## +# Twisting Vines +#minecraft:twisting_vines[age=0]: minecraft:twisting_vines[age=0]# +minecraft:twisting_vines[age=1]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=2]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=3]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=4]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=5]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=6]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=7]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=8]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=9]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=10]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=11]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=12]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=13]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=14]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=15]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=16]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=17]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=18]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=19]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=20]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=21]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=22]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=23]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=24]: minecraft:twisting_vines[age=0] +minecraft:twisting_vines[age=25]: minecraft:twisting_vines[age=0] +######################################################################################################################################################################################################################## +# Cave Vines +#minecraft:cave_vines[age=0,berries=false]: minecraft:cave_vines[age=0,berries=false]# +minecraft:cave_vines[age=1,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=2,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=3,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=4,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=5,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=6,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=7,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=8,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=9,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=10,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=11,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=12,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=13,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=14,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=15,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=16,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=17,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=18,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=19,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=20,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=21,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=22,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=23,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=24,berries=false]: minecraft:cave_vines[age=0,berries=false] +minecraft:cave_vines[age=25,berries=false]: minecraft:cave_vines[age=0,berries=false] +#minecraft:cave_vines[age=0,berries=true]: minecraft:cave_vines[age=0,berries=true]# +minecraft:cave_vines[age=1,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=2,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=3,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=4,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=5,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=6,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=7,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=8,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=9,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=10,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=11,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=12,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=13,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=14,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=15,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=16,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=17,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=18,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=19,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=20,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=21,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=22,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=23,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=24,berries=true]: minecraft:cave_vines[age=0,berries=true] +minecraft:cave_vines[age=25,berries=true]: minecraft:cave_vines[age=0,berries=true] +######################################################################################################################################################################################################################## +# SugarCane +#minecraft:sugar_cane[age=0]: minecraft:sugar_cane[age=0]# +minecraft:sugar_cane[age=1]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=2]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=3]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=4]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=5]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=6]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=7]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=8]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=9]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=10]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=11]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=12]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=13]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=14]: minecraft:sugar_cane[age=0] +minecraft:sugar_cane[age=15]: minecraft:sugar_cane[age=0] +######################################################################################################################################################################################################################## +# Leaves +minecraft:oak_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:oak_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:oak_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:oak_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:oak_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:acacia_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:acacia_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:acacia_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:acacia_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:jungle_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:jungle_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:jungle_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:jungle_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:birch_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:birch_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:birch_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:birch_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:birch_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:mangrove_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:mangrove_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:mangrove_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:mangrove_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:mangrove_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:cherry_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:cherry_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:cherry_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:cherry_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:cherry_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:dark_oak_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:dark_oak_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:dark_oak_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:dark_oak_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:azalea_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:azalea_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:azalea_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:azalea_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:flowering_azalea_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:flowering_azalea_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=true]# + +minecraft:spruce_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +minecraft:spruce_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false]# +minecraft:spruce_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +minecraft:spruce_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=true]# + +# You can enable this if you are running 1.21.4+ +#minecraft:pale_oak_leaves[distance=1,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=2,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=3,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=4,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=5,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=6,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=7,persistent=false,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=1,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=2,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=3,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=4,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=5,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +#minecraft:pale_oak_leaves[distance=6,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false] +##minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=false]# +#minecraft:pale_oak_leaves[distance=1,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=2,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=3,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=4,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=5,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=6,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=7,persistent=false,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=1,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=2,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=3,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=4,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=5,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +#minecraft:pale_oak_leaves[distance=6,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true] +##minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true]: minecraft:pale_oak_leaves[distance=7,persistent=true,waterlogged=true]# + +######################################################################################################################################################################################################################## +# Tripwire +#minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true]# +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=false,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=false,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=false,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=false]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=false,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=false,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=false,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=true,north=false,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=false,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=false,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=false,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=true,east=false,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=false,east=true,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=true,disarmed=false,east=true,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +minecraft:tripwire[attached=false,disarmed=true,east=true,north=true,south=true,west=true,powered=true]: minecraft:tripwire[attached=true,disarmed=true,east=true,north=true,south=true,west=true,powered=true] +######################################################################################################################################################################################################################## +# Chorus Plant +#minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true]# +minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=false,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=false,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=false,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=false]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=false,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=false,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=true,south=false,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=false,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=false,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=false,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=true,north=false,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=false,north=true,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=true,east=false,north=true,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +minecraft:chorus_plant[down=false,east=true,north=true,south=true,up=true,west=true]: minecraft:chorus_plant[down=true,east=true,north=true,south=true,up=true,west=true] +######################################################################################################################################################################################################################## +# Note Block +#minecraft:note_block[instrument=harp,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false]# +#minecraft:note_block[instrument=harp,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false]# +#minecraft:note_block[instrument=harp,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false]# +#minecraft:note_block[instrument=harp,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false]# +#minecraft:note_block[instrument=harp,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false]# +#minecraft:note_block[instrument=harp,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false]# +#minecraft:note_block[instrument=harp,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false]# +#minecraft:note_block[instrument=harp,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false]# +#minecraft:note_block[instrument=harp,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false]# +#minecraft:note_block[instrument=harp,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false]# +#minecraft:note_block[instrument=harp,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false]# +#minecraft:note_block[instrument=harp,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false]# +#minecraft:note_block[instrument=harp,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false]# +#minecraft:note_block[instrument=harp,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false]# +#minecraft:note_block[instrument=harp,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false]# +#minecraft:note_block[instrument=harp,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false]# +#minecraft:note_block[instrument=harp,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false]# +#minecraft:note_block[instrument=harp,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false]# +#minecraft:note_block[instrument=harp,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false]# +#minecraft:note_block[instrument=harp,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false]# +#minecraft:note_block[instrument=harp,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false]# +#minecraft:note_block[instrument=harp,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false]# +#minecraft:note_block[instrument=harp,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false]# +#minecraft:note_block[instrument=harp,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false]# +#minecraft:note_block[instrument=harp,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false]# +#minecraft:note_block[instrument=harp,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true]# +#minecraft:note_block[instrument=harp,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true]# +#minecraft:note_block[instrument=harp,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true]# +#minecraft:note_block[instrument=harp,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true]# +#minecraft:note_block[instrument=harp,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true]# +#minecraft:note_block[instrument=harp,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true]# +#minecraft:note_block[instrument=harp,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true]# +#minecraft:note_block[instrument=harp,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true]# +#minecraft:note_block[instrument=harp,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true]# +#minecraft:note_block[instrument=harp,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true]# +#minecraft:note_block[instrument=harp,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true]# +#minecraft:note_block[instrument=harp,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true]# +#minecraft:note_block[instrument=harp,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true]# +#minecraft:note_block[instrument=harp,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true]3 +#minecraft:note_block[instrument=harp,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true]# +#minecraft:note_block[instrument=harp,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true]# +#minecraft:note_block[instrument=harp,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true]# +#minecraft:note_block[instrument=harp,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true]# +#minecraft:note_block[instrument=harp,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true]# +#minecraft:note_block[instrument=harp,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true]# +#minecraft:note_block[instrument=harp,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true]# +#minecraft:note_block[instrument=harp,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true]# +#minecraft:note_block[instrument=harp,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true]# +#minecraft:note_block[instrument=harp,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true]# +#minecraft:note_block[instrument=harp,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true]# +minecraft:note_block[instrument=hat,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=hat,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=hat,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=hat,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=hat,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=hat,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=hat,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=hat,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=hat,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=hat,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=hat,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=hat,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=hat,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=hat,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=hat,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=hat,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=hat,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=hat,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=hat,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=hat,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=hat,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=hat,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=hat,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=hat,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=hat,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=hat,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=hat,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=hat,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=hat,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=hat,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=hat,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=hat,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=hat,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=hat,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=hat,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=hat,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=hat,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=hat,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=hat,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=hat,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=hat,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=hat,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=hat,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=hat,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=hat,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=hat,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=hat,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=hat,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=hat,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=hat,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=basedrum,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=basedrum,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=basedrum,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=basedrum,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=basedrum,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=basedrum,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=basedrum,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=basedrum,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=basedrum,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=basedrum,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=basedrum,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=basedrum,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=basedrum,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=basedrum,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=basedrum,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=basedrum,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=basedrum,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=basedrum,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=basedrum,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=basedrum,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=basedrum,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=basedrum,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=basedrum,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=basedrum,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=basedrum,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=basedrum,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=basedrum,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=basedrum,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=basedrum,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=basedrum,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=basedrum,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=basedrum,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=basedrum,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=basedrum,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=basedrum,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=basedrum,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=basedrum,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=basedrum,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=basedrum,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=basedrum,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=basedrum,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=basedrum,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=basedrum,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=basedrum,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=basedrum,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=basedrum,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=basedrum,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=basedrum,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=basedrum,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=basedrum,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=snare,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=snare,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=snare,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=snare,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=snare,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=snare,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=snare,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=snare,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=snare,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=snare,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=snare,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=snare,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=snare,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=snare,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=snare,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=snare,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=snare,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=snare,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=snare,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=snare,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=snare,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=snare,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=snare,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=snare,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=snare,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=snare,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=snare,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=snare,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=snare,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=snare,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=snare,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=snare,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=snare,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=snare,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=snare,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=snare,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=snare,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=snare,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=snare,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=snare,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=snare,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=snare,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=snare,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=snare,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=snare,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=snare,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=snare,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=snare,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=snare,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=snare,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=bass,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=bass,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=bass,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=bass,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=bass,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=bass,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=bass,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=bass,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=bass,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=bass,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=bass,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=bass,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=bass,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=bass,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=bass,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=bass,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=bass,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=bass,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=bass,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=bass,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=bass,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=bass,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=bass,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=bass,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=bass,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=bass,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=bass,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=bass,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=bass,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=bass,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=bass,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=bass,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=bass,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=bass,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=bass,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=bass,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=bass,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=bass,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=bass,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=bass,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=bass,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=bass,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=bass,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=bass,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=bass,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=bass,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=bass,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=bass,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=bass,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=bass,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=flute,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=flute,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=flute,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=flute,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=flute,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=flute,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=flute,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=flute,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=flute,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=flute,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=flute,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=flute,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=flute,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=flute,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=flute,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=flute,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=flute,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=flute,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=flute,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=flute,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=flute,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=flute,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=flute,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=flute,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=flute,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=flute,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=flute,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=flute,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=flute,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=flute,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=flute,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=flute,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=flute,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=flute,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=flute,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=flute,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=flute,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=flute,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=flute,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=flute,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=flute,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=flute,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=flute,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=flute,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=flute,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=flute,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=flute,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=flute,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=flute,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=flute,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=bell,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=bell,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=bell,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=bell,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=bell,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=bell,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=bell,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=bell,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=bell,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=bell,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=bell,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=bell,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=bell,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=bell,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=bell,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=bell,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=bell,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=bell,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=bell,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=bell,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=bell,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=bell,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=bell,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=bell,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=bell,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=bell,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=bell,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=bell,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=bell,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=bell,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=bell,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=bell,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=bell,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=bell,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=bell,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=bell,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=bell,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=bell,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=bell,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=bell,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=bell,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=bell,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=bell,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=bell,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=bell,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=bell,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=bell,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=bell,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=bell,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=bell,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=guitar,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=guitar,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=guitar,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=guitar,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=guitar,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=guitar,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=guitar,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=guitar,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=guitar,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=guitar,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=guitar,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=guitar,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=guitar,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=guitar,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=guitar,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=guitar,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=guitar,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=guitar,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=guitar,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=guitar,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=guitar,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=guitar,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=guitar,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=guitar,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=guitar,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=guitar,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=guitar,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=guitar,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=guitar,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=guitar,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=guitar,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=guitar,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=guitar,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=guitar,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=guitar,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=guitar,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=guitar,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=guitar,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=guitar,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=guitar,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=guitar,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=guitar,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=guitar,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=guitar,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=guitar,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=guitar,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=guitar,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=guitar,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=guitar,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=guitar,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=chime,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=chime,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=chime,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=chime,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=chime,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=chime,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=chime,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=chime,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=chime,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=chime,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=chime,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=chime,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=chime,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=chime,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=chime,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=chime,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=chime,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=chime,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=chime,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=chime,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=chime,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=chime,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=chime,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=chime,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=chime,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=chime,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=chime,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=chime,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=chime,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=chime,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=chime,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=chime,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=chime,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=chime,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=chime,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=chime,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=chime,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=chime,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=chime,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=chime,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=chime,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=chime,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=chime,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=chime,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=chime,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=chime,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=chime,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=chime,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=chime,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=chime,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=xylophone,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=xylophone,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=xylophone,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=xylophone,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=xylophone,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=xylophone,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=xylophone,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=xylophone,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=xylophone,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=xylophone,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=xylophone,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=xylophone,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=xylophone,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=xylophone,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=xylophone,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=xylophone,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=xylophone,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=xylophone,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=xylophone,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=xylophone,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=xylophone,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=xylophone,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=xylophone,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=xylophone,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=xylophone,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=xylophone,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=xylophone,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=xylophone,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=xylophone,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=xylophone,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=xylophone,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=xylophone,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=xylophone,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=xylophone,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=xylophone,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=xylophone,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=xylophone,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=xylophone,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=xylophone,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=xylophone,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=xylophone,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=xylophone,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=xylophone,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=xylophone,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=xylophone,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=xylophone,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=xylophone,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=xylophone,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=xylophone,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=xylophone,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=iron_xylophone,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=iron_xylophone,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=cow_bell,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=cow_bell,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=cow_bell,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=cow_bell,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=cow_bell,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=cow_bell,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=cow_bell,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=cow_bell,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=cow_bell,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=cow_bell,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=cow_bell,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=cow_bell,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=cow_bell,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=cow_bell,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=cow_bell,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=cow_bell,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=cow_bell,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=cow_bell,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=cow_bell,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=cow_bell,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=cow_bell,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=cow_bell,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=cow_bell,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=cow_bell,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=cow_bell,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=cow_bell,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=cow_bell,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=cow_bell,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=cow_bell,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=cow_bell,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=cow_bell,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=cow_bell,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=cow_bell,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=cow_bell,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=cow_bell,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=cow_bell,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=cow_bell,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=cow_bell,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=cow_bell,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=cow_bell,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=cow_bell,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=cow_bell,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=cow_bell,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=cow_bell,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=cow_bell,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=cow_bell,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=cow_bell,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=cow_bell,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=cow_bell,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=cow_bell,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=didgeridoo,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=didgeridoo,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=didgeridoo,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=didgeridoo,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=didgeridoo,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=didgeridoo,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=didgeridoo,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=didgeridoo,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=didgeridoo,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=didgeridoo,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=didgeridoo,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=didgeridoo,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=didgeridoo,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=didgeridoo,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=didgeridoo,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=didgeridoo,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=didgeridoo,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=didgeridoo,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=didgeridoo,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=didgeridoo,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=didgeridoo,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=didgeridoo,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=didgeridoo,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=didgeridoo,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=didgeridoo,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=didgeridoo,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=didgeridoo,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=didgeridoo,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=didgeridoo,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=didgeridoo,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=didgeridoo,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=didgeridoo,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=didgeridoo,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=didgeridoo,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=didgeridoo,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=didgeridoo,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=didgeridoo,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=didgeridoo,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=didgeridoo,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=didgeridoo,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=didgeridoo,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=didgeridoo,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=didgeridoo,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=didgeridoo,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=didgeridoo,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=didgeridoo,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=didgeridoo,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=didgeridoo,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=didgeridoo,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=didgeridoo,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=bit,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=bit,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=bit,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=bit,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=bit,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=bit,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=bit,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=bit,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=bit,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=bit,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=bit,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=bit,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=bit,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=bit,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=bit,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=bit,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=bit,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=bit,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=bit,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=bit,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=bit,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=bit,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=bit,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=bit,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=bit,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=bit,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=bit,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=bit,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=bit,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=bit,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=bit,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=bit,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=bit,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=bit,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=bit,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=bit,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=bit,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=bit,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=bit,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=bit,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=bit,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=bit,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=bit,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=bit,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=bit,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=bit,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=bit,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=bit,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=bit,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=bit,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=banjo,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=banjo,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=banjo,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=banjo,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=banjo,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=banjo,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=banjo,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=banjo,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=banjo,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=banjo,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=banjo,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=banjo,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=banjo,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=banjo,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=banjo,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=banjo,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=banjo,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=banjo,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=banjo,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=banjo,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=banjo,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=banjo,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=banjo,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=banjo,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=banjo,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=banjo,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=banjo,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=banjo,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=banjo,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=banjo,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=banjo,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=banjo,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=banjo,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=banjo,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=banjo,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=banjo,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=banjo,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=banjo,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=banjo,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=banjo,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=banjo,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=banjo,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=banjo,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=banjo,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=banjo,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=banjo,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=banjo,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=banjo,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=banjo,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=banjo,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=pling,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=pling,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=pling,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=pling,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=pling,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=pling,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=pling,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=pling,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=pling,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=pling,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=pling,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=pling,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=pling,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=pling,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=pling,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=pling,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=pling,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=pling,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=pling,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=pling,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=pling,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=pling,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=pling,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=pling,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=pling,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=pling,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=pling,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=pling,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=pling,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=pling,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=pling,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=pling,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=pling,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=pling,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=pling,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=pling,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=pling,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=pling,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=pling,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=pling,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=pling,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=pling,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=pling,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=pling,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=pling,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=pling,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=pling,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=pling,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=pling,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=pling,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=zombie,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=zombie,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=zombie,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=zombie,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=zombie,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=zombie,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=zombie,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=zombie,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=zombie,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=zombie,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=zombie,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=zombie,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=zombie,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=zombie,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=zombie,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=zombie,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=zombie,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=zombie,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=zombie,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=zombie,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=zombie,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=zombie,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=zombie,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=zombie,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=zombie,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=zombie,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=zombie,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=zombie,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=zombie,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=zombie,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=zombie,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=zombie,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=zombie,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=zombie,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=zombie,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=zombie,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=zombie,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=zombie,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=zombie,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=zombie,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=zombie,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=zombie,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=zombie,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=zombie,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=zombie,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=zombie,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=zombie,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=zombie,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=zombie,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=zombie,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=skeleton,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=skeleton,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=skeleton,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=skeleton,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=skeleton,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=skeleton,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=skeleton,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=skeleton,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=skeleton,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=skeleton,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=skeleton,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=skeleton,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=skeleton,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=skeleton,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=skeleton,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=skeleton,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=skeleton,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=skeleton,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=skeleton,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=skeleton,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=skeleton,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=skeleton,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=skeleton,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=skeleton,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=skeleton,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=skeleton,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=skeleton,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=skeleton,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=skeleton,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=skeleton,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=skeleton,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=skeleton,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=skeleton,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=skeleton,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=skeleton,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=skeleton,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=skeleton,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=skeleton,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=skeleton,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=skeleton,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=skeleton,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=skeleton,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=skeleton,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=skeleton,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=skeleton,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=skeleton,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=skeleton,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=skeleton,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=skeleton,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=skeleton,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=creeper,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=creeper,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=creeper,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=creeper,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=creeper,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=creeper,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=creeper,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=creeper,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=creeper,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=creeper,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=creeper,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=creeper,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=creeper,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=creeper,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=creeper,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=creeper,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=creeper,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=creeper,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=creeper,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=creeper,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=creeper,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=creeper,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=creeper,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=creeper,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=creeper,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=creeper,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=creeper,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=creeper,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=creeper,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=creeper,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=creeper,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=creeper,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=creeper,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=creeper,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=creeper,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=creeper,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=creeper,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=creeper,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=creeper,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=creeper,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=creeper,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=creeper,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=creeper,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=creeper,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=creeper,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=creeper,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=creeper,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=creeper,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=creeper,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=creeper,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=dragon,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=dragon,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=dragon,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=dragon,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=dragon,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=dragon,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=dragon,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=dragon,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=dragon,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=dragon,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=dragon,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=dragon,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=dragon,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=dragon,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=dragon,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=dragon,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=dragon,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=dragon,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=dragon,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=dragon,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=dragon,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=dragon,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=dragon,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=dragon,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=dragon,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=dragon,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=dragon,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=dragon,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=dragon,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=dragon,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=dragon,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=dragon,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=dragon,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=dragon,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=dragon,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=dragon,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=dragon,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=dragon,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=dragon,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=dragon,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=dragon,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=dragon,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=dragon,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=dragon,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=dragon,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=dragon,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=dragon,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=dragon,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=dragon,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=dragon,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=wither_skeleton,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=wither_skeleton,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=piglin,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=piglin,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=piglin,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=piglin,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=piglin,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=piglin,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=piglin,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=piglin,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=piglin,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=piglin,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=piglin,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=piglin,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=piglin,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=piglin,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=piglin,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=piglin,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=piglin,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=piglin,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=piglin,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=piglin,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=piglin,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=piglin,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=piglin,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=piglin,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=piglin,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=piglin,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=piglin,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=piglin,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=piglin,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=piglin,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=piglin,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=piglin,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=piglin,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=piglin,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=piglin,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=piglin,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=piglin,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=piglin,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=piglin,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=piglin,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=piglin,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=piglin,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=piglin,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=piglin,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=piglin,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=piglin,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=piglin,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=piglin,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=piglin,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=piglin,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] +minecraft:note_block[instrument=custom_head,note=0,powered=false]: minecraft:note_block[instrument=harp,note=0,powered=false] +minecraft:note_block[instrument=custom_head,note=1,powered=false]: minecraft:note_block[instrument=harp,note=1,powered=false] +minecraft:note_block[instrument=custom_head,note=2,powered=false]: minecraft:note_block[instrument=harp,note=2,powered=false] +minecraft:note_block[instrument=custom_head,note=3,powered=false]: minecraft:note_block[instrument=harp,note=3,powered=false] +minecraft:note_block[instrument=custom_head,note=4,powered=false]: minecraft:note_block[instrument=harp,note=4,powered=false] +minecraft:note_block[instrument=custom_head,note=5,powered=false]: minecraft:note_block[instrument=harp,note=5,powered=false] +minecraft:note_block[instrument=custom_head,note=6,powered=false]: minecraft:note_block[instrument=harp,note=6,powered=false] +minecraft:note_block[instrument=custom_head,note=7,powered=false]: minecraft:note_block[instrument=harp,note=7,powered=false] +minecraft:note_block[instrument=custom_head,note=8,powered=false]: minecraft:note_block[instrument=harp,note=8,powered=false] +minecraft:note_block[instrument=custom_head,note=9,powered=false]: minecraft:note_block[instrument=harp,note=9,powered=false] +minecraft:note_block[instrument=custom_head,note=10,powered=false]: minecraft:note_block[instrument=harp,note=10,powered=false] +minecraft:note_block[instrument=custom_head,note=11,powered=false]: minecraft:note_block[instrument=harp,note=11,powered=false] +minecraft:note_block[instrument=custom_head,note=12,powered=false]: minecraft:note_block[instrument=harp,note=12,powered=false] +minecraft:note_block[instrument=custom_head,note=13,powered=false]: minecraft:note_block[instrument=harp,note=13,powered=false] +minecraft:note_block[instrument=custom_head,note=14,powered=false]: minecraft:note_block[instrument=harp,note=14,powered=false] +minecraft:note_block[instrument=custom_head,note=15,powered=false]: minecraft:note_block[instrument=harp,note=15,powered=false] +minecraft:note_block[instrument=custom_head,note=16,powered=false]: minecraft:note_block[instrument=harp,note=16,powered=false] +minecraft:note_block[instrument=custom_head,note=17,powered=false]: minecraft:note_block[instrument=harp,note=17,powered=false] +minecraft:note_block[instrument=custom_head,note=18,powered=false]: minecraft:note_block[instrument=harp,note=18,powered=false] +minecraft:note_block[instrument=custom_head,note=19,powered=false]: minecraft:note_block[instrument=harp,note=19,powered=false] +minecraft:note_block[instrument=custom_head,note=20,powered=false]: minecraft:note_block[instrument=harp,note=20,powered=false] +minecraft:note_block[instrument=custom_head,note=21,powered=false]: minecraft:note_block[instrument=harp,note=21,powered=false] +minecraft:note_block[instrument=custom_head,note=22,powered=false]: minecraft:note_block[instrument=harp,note=22,powered=false] +minecraft:note_block[instrument=custom_head,note=23,powered=false]: minecraft:note_block[instrument=harp,note=23,powered=false] +minecraft:note_block[instrument=custom_head,note=24,powered=false]: minecraft:note_block[instrument=harp,note=24,powered=false] +minecraft:note_block[instrument=custom_head,note=0,powered=true]: minecraft:note_block[instrument=harp,note=0,powered=true] +minecraft:note_block[instrument=custom_head,note=1,powered=true]: minecraft:note_block[instrument=harp,note=1,powered=true] +minecraft:note_block[instrument=custom_head,note=2,powered=true]: minecraft:note_block[instrument=harp,note=2,powered=true] +minecraft:note_block[instrument=custom_head,note=3,powered=true]: minecraft:note_block[instrument=harp,note=3,powered=true] +minecraft:note_block[instrument=custom_head,note=4,powered=true]: minecraft:note_block[instrument=harp,note=4,powered=true] +minecraft:note_block[instrument=custom_head,note=5,powered=true]: minecraft:note_block[instrument=harp,note=5,powered=true] +minecraft:note_block[instrument=custom_head,note=6,powered=true]: minecraft:note_block[instrument=harp,note=6,powered=true] +minecraft:note_block[instrument=custom_head,note=7,powered=true]: minecraft:note_block[instrument=harp,note=7,powered=true] +minecraft:note_block[instrument=custom_head,note=8,powered=true]: minecraft:note_block[instrument=harp,note=8,powered=true] +minecraft:note_block[instrument=custom_head,note=9,powered=true]: minecraft:note_block[instrument=harp,note=9,powered=true] +minecraft:note_block[instrument=custom_head,note=10,powered=true]: minecraft:note_block[instrument=harp,note=10,powered=true] +minecraft:note_block[instrument=custom_head,note=11,powered=true]: minecraft:note_block[instrument=harp,note=11,powered=true] +minecraft:note_block[instrument=custom_head,note=12,powered=true]: minecraft:note_block[instrument=harp,note=12,powered=true] +minecraft:note_block[instrument=custom_head,note=13,powered=true]: minecraft:note_block[instrument=harp,note=13,powered=true] +minecraft:note_block[instrument=custom_head,note=14,powered=true]: minecraft:note_block[instrument=harp,note=14,powered=true] +minecraft:note_block[instrument=custom_head,note=15,powered=true]: minecraft:note_block[instrument=harp,note=15,powered=true] +minecraft:note_block[instrument=custom_head,note=16,powered=true]: minecraft:note_block[instrument=harp,note=16,powered=true] +minecraft:note_block[instrument=custom_head,note=17,powered=true]: minecraft:note_block[instrument=harp,note=17,powered=true] +minecraft:note_block[instrument=custom_head,note=18,powered=true]: minecraft:note_block[instrument=harp,note=18,powered=true] +minecraft:note_block[instrument=custom_head,note=19,powered=true]: minecraft:note_block[instrument=harp,note=19,powered=true] +minecraft:note_block[instrument=custom_head,note=20,powered=true]: minecraft:note_block[instrument=harp,note=20,powered=true] +minecraft:note_block[instrument=custom_head,note=21,powered=true]: minecraft:note_block[instrument=harp,note=21,powered=true] +minecraft:note_block[instrument=custom_head,note=22,powered=true]: minecraft:note_block[instrument=harp,note=22,powered=true] +minecraft:note_block[instrument=custom_head,note=23,powered=true]: minecraft:note_block[instrument=harp,note=23,powered=true] +minecraft:note_block[instrument=custom_head,note=24,powered=true]: minecraft:note_block[instrument=harp,note=24,powered=true] \ No newline at end of file diff --git a/client-mod/src/main/resources/assets/craft-engine-fabric-mod/icon.png b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/icon.png new file mode 100644 index 000000000..a388e01c0 Binary files /dev/null and b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/icon.png differ diff --git a/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/en_us.json b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/en_us.json new file mode 100644 index 000000000..56313e2df --- /dev/null +++ b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/en_us.json @@ -0,0 +1,8 @@ +{ + "title.craftengine.config": "CraftEngine Settings", + "category.craftengine.general": "General", + "option.craftengine.enable_network": "Enable custom blocks in server", + "tooltip.craftengine.enable_network": "Changes requires re-entering the server to take effect", + "disconnect.craftengine.block_registry_mismatch": "Block registry size mismatch. Current: %s. Expected: %s. \n 1. Make sure that the configs are the same as the server's. \n 2. Do not use any mod that might register new block. \n 3. Do not install ViaVersion.", + "disconnect.craftengine.title": "CraftEngine Connection Error" +} \ No newline at end of file diff --git a/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/zh_cn.json b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/zh_cn.json new file mode 100644 index 000000000..4dd4bbc4e --- /dev/null +++ b/client-mod/src/main/resources/assets/craft-engine-fabric-mod/lang/zh_cn.json @@ -0,0 +1,8 @@ +{ + "title.craftengine.config": "CraftEngine设置", + "category.craftengine.general": "通用", + "option.craftengine.enable_network": "启用服务器内自定义方块", + "tooltip.craftengine.enable_network": "需要重新进入服务器以应用更改", + "disconnect.craftengine.block_registry_mismatch": "方块注册表大小不匹配. 当前: %s. 预期: %s \n 1. 确保客户端mod配置与服务端配置一致. \n 2. 不要安装任何会注册新方块的mod. \n 3. 不要使用ViaVersion.", + "disconnect.craftengine.title": "CraftEngine连接错误" +} \ No newline at end of file diff --git a/client-mod/src/main/resources/fabric.mod.json b/client-mod/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..534f4f8f7 --- /dev/null +++ b/client-mod/src/main/resources/fabric.mod.json @@ -0,0 +1,34 @@ +{ + "schemaVersion": 1, + "id": "craft-engine-fabric-mod", + "version": "${version}", + + "name": "CraftEngine Fabric Mod", + "description": "CraftEngine Fabric Mod", + "authors": [ + "jhqwqmc" + ], + "contact": { + "name": "CraftEngine", + "homepage": "https://github.com/Xiao-MoMi/craft-engine", + "issues": "https://github.com/Xiao-MoMi/craft-engine/issues" + }, + + "license": "GPL-3.0", + "icon": "assets/craft-engine-fabric-mod/icon.png", + + "environment": "client", + "entrypoints": { + "client": ["net.momirealms.craftengine.fabric.client.CraftEngineFabricModClient"], + "main": ["net.momirealms.craftengine.fabric.CraftEngineFabricMod"], + "modmenu": ["net.momirealms.craftengine.fabric.client.config.ModMenuIntegration"] + }, + + "depends": { + "fabricloader": ">=${loader_version}", + "fabric": "*", + "minecraft": "${minecraft_version}", + "modmenu": ">=${modmenu_version}", + "cloth-config": ">=${cloth_version}" + } +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/BlockSounds.java b/core/src/main/java/net/momirealms/craftengine/core/block/BlockSounds.java index bc6e95247..1dc49796f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/BlockSounds.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/BlockSounds.java @@ -1,5 +1,6 @@ package net.momirealms.craftengine.core.block; +import net.momirealms.craftengine.core.sound.SoundData; import net.momirealms.craftengine.core.util.Key; import java.util.Map; @@ -12,51 +13,58 @@ public class BlockSounds { Hit 0.5 0.5 Break 1 0.8 */ - public static final Key EMPTY_SOUND = Key.of("minecraft:intentionally_empty"); - public static final BlockSounds EMPTY = new BlockSounds(EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND); + public static final SoundData EMPTY_SOUND = new SoundData(Key.of("minecraft:intentionally_empty"), 1, 1); + public static final BlockSounds EMPTY = new BlockSounds(EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND, EMPTY_SOUND); - private final Key breakSound; - private final Key stepSound; - private final Key placeSound; - private final Key hitSound; - private final Key fallSound; + private final SoundData breakSound; + private final SoundData stepSound; + private final SoundData placeSound; + private final SoundData hitSound; + private final SoundData fallSound; + private final SoundData landSound; - public BlockSounds(Key breakSound, Key stepSound, Key placeSound, Key hitSound, Key fallSound) { + public BlockSounds(SoundData breakSound, SoundData stepSound, SoundData placeSound, SoundData hitSound, SoundData fallSound, SoundData landSound) { this.breakSound = breakSound; this.stepSound = stepSound; this.placeSound = placeSound; this.hitSound = hitSound; this.fallSound = fallSound; + this.landSound = landSound; } public static BlockSounds fromMap(Map map) { if (map == null) return EMPTY; return new BlockSounds( - Key.of(map.getOrDefault("break", "minecraft:intentionally_empty").toString()), - Key.of(map.getOrDefault("step", "minecraft:intentionally_empty").toString()), - Key.of(map.getOrDefault("place", "minecraft:intentionally_empty").toString()), - Key.of(map.getOrDefault("hit", "minecraft:intentionally_empty").toString()), - Key.of(map.getOrDefault("fall", "minecraft:intentionally_empty").toString()) + SoundData.create(map.getOrDefault("break", "minecraft:intentionally_empty"), 1f, 0.8f), + SoundData.create(map.getOrDefault("step", "minecraft:intentionally_empty"), 0.15f, 1f), + SoundData.create(map.getOrDefault("place", "minecraft:intentionally_empty"), 0f, 0.8f), // todo 0? + SoundData.create(map.getOrDefault("hit", "minecraft:intentionally_empty"), 0.5f, 0.5f), + SoundData.create(map.getOrDefault("fall", "minecraft:intentionally_empty"), 0.5f, 0.75f), + SoundData.create(map.getOrDefault("land", "minecraft:intentionally_empty"), 0.3f, 1f) ); } - public Key breakSound() { + public SoundData breakSound() { return breakSound; } - public Key stepSound() { + public SoundData stepSound() { return stepSound; } - public Key placeSound() { + public SoundData placeSound() { return placeSound; } - public Key hitSound() { + public SoundData hitSound() { return hitSound; } - public Key fallSound() { + public SoundData landSound() { + return landSound; + } + + public SoundData fallSound() { return fallSound; } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Property.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Property.java index 78391ee8c..83b45f7fb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Property.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Property.java @@ -35,6 +35,14 @@ public abstract class Property> { throw new IllegalArgumentException("Unsupported property type used in hard-coded `facing` property: " + property.valueClass()); } })); + HARD_CODED_PLACEMENTS.put("facing_clockwise", (property -> { + if (property.valueClass() == HorizontalDirection.class) { + Property directionProperty = (Property) property; + return (context, state) -> state.with(directionProperty, context.getHorizontalDirection().clockWise().toHorizontalDirection()); + } else { + throw new IllegalArgumentException("Unsupported property type used in hard-coded `facing_clockwise` property: " + property.valueClass()); + } + })); HARD_CODED_PLACEMENTS.put("waterlogged", (property -> { Property waterloggedProperty = (Property) property; return (context, state) -> state.with(waterloggedProperty, context.isWaterSource()); diff --git a/core/src/main/java/net/momirealms/craftengine/core/font/ImageManager.java b/core/src/main/java/net/momirealms/craftengine/core/font/ImageManager.java index 7c38e8643..eb2b5ab6d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/font/ImageManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/font/ImageManager.java @@ -14,6 +14,11 @@ import java.util.function.BiFunction; public interface ImageManager extends Reloadable, ConfigSectionParser { String CONFIG_SECTION_NAME = "images"; Key DEFAULT_FONT = Key.of("minecraft:default"); + String BYPASS_BOOK = "craftengine.filter.bypass.book"; + String BYPASS_SIGN = "craftengine.filter.bypass.sign"; + String BYPASS_CHAT = "craftengine.filter.bypass.chat"; + String BYPASS_COMMAND = "craftengine.filter.bypass.command"; + String BYPASS_ANVIL = "craftengine.filter.bypass.anvil"; default String sectionId() { return CONFIG_SECTION_NAME; diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index 081653629..b40ec0909 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -282,6 +282,8 @@ public abstract class AbstractPackManager implements PackManager { plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern.png.mcmeta"); plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png"); plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/chinese_lantern_top.png.mcmeta"); + plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil.png"); + plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/block/custom/netherite_anvil_top.png"); // items plugin.saveResource("resources/default/configuration/items.yml"); plugin.saveResource("resources/default/resourcepack/assets/minecraft/textures/item/custom/topaz_rod.png"); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/ConfigManager.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/ConfigManager.java index 9e7e4f18e..746769d83 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/ConfigManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/ConfigManager.java @@ -95,6 +95,7 @@ public class ConfigManager implements Reloadable { protected int performance$max_block_chain_update_limit; protected boolean performance$chunk_system$restore_vanilla_blocks_on_chunk_unload; protected boolean performance$chunk_system$restore_custom_blocks_on_chunk_load; + protected boolean performance$chunk_system$sync_custom_blocks_on_chunk_load; protected boolean furniture$remove_invalid_furniture_on_chunk_load$enable; protected Set furniture$remove_invalid_furniture_on_chunk_load$list; @@ -104,6 +105,12 @@ public class ConfigManager implements Reloadable { protected boolean item$non_italic_tag; + protected boolean image$illegal_characters_filter$command; + protected boolean image$illegal_characters_filter$chat; + protected boolean image$illegal_characters_filter$anvil; + protected boolean image$illegal_characters_filter$sign; + protected boolean image$illegal_characters_filter$book; + public ConfigManager(CraftEngine plugin) { this.plugin = plugin; this.configVersion = PluginProperties.getValue("config"); @@ -236,6 +243,7 @@ public class ConfigManager implements Reloadable { performance$light_system$enable = config.getBoolean("performance.light-system.enable", true); performance$chunk_system$restore_vanilla_blocks_on_chunk_unload = config.getBoolean("performance.chunk-system.restore-vanilla-blocks-on-chunk-unload", true); performance$chunk_system$restore_custom_blocks_on_chunk_load = config.getBoolean("performance.chunk-system.restore-custom-blocks-on-chunk-load", true); + performance$chunk_system$sync_custom_blocks_on_chunk_load = config.getBoolean("performance.chunk-system.sync-custom-blocks-on-chunk-load", false); // furniture furniture$remove_invalid_furniture_on_chunk_load$enable = config.getBoolean("furniture.remove-invalid-furniture-on-chunk-load.enable", false); @@ -247,6 +255,13 @@ public class ConfigManager implements Reloadable { // recipe recipe$enable = config.getBoolean("recipe.enable", true); + // image + image$illegal_characters_filter$anvil = config.getBoolean("image.illegal-characters-filter.anvil", true); + image$illegal_characters_filter$book = config.getBoolean("image.illegal-characters-filter.book", true); + image$illegal_characters_filter$chat = config.getBoolean("image.illegal-characters-filter.chat", true); + image$illegal_characters_filter$command = config.getBoolean("image.illegal-characters-filter.command", true); + image$illegal_characters_filter$sign = config.getBoolean("image.illegal-characters-filter.sign", true); + Class modClazz = ReflectionUtils.getClazz(CraftEngine.MOD_CLASS); if (modClazz != null) { Method setMaxChainMethod = ReflectionUtils.getStaticMethod(modClazz, void.class, new String[] {"setMaxChainUpdate"}, int.class); @@ -342,6 +357,10 @@ public class ConfigManager implements Reloadable { return instance.performance$chunk_system$restore_custom_blocks_on_chunk_load; } + public static boolean syncCustomBlocks() { + return instance.performance$chunk_system$sync_custom_blocks_on_chunk_load; + } + public static List foldersToMerge() { return instance.resource_pack$merge_external_folders; } @@ -494,6 +513,26 @@ public class ConfigManager implements Reloadable { return instance.resource_pack$generate_mod_assets; } + public static boolean filterChat() { + return instance().image$illegal_characters_filter$chat; + } + + public static boolean filterAnvil() { + return instance().image$illegal_characters_filter$anvil; + } + + public static boolean filterCommand() { + return instance().image$illegal_characters_filter$command; + } + + public static boolean filterBook() { + return instance().image$illegal_characters_filter$book; + } + + public static boolean filterSign() { + return instance().image$illegal_characters_filter$sign; + } + public YamlDocument loadOrCreateYamlData(String fileName) { File file = new File(this.plugin.dataFolderFile(), fileName); if (!file.exists()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetWorkUser.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetWorkUser.java index c70b49362..4844ff92d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetWorkUser.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetWorkUser.java @@ -36,4 +36,8 @@ public interface NetWorkUser { Object platformPlayer(); Map> furnitureView(); + + boolean clientModEnabled(); + + void setClientModState(boolean enable); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetworkManager.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetworkManager.java index 2a8341e1f..4b0a0dc77 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetworkManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/network/NetworkManager.java @@ -6,6 +6,8 @@ import net.momirealms.craftengine.core.entity.player.Player; import java.util.Collection; public interface NetworkManager { + String MOD_CHANNEL = "craftengine:payload"; + void setUser(Channel channel, NetWorkUser user); NetWorkUser getUser(Channel channel); diff --git a/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java b/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java new file mode 100644 index 000000000..5cdd8d198 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/sound/SoundData.java @@ -0,0 +1,23 @@ +package net.momirealms.craftengine.core.sound; + +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.MiscUtils; + +import java.util.Map; + +public record SoundData(Key id, float volume, float pitch) { + + public static SoundData create(Object obj, float volume, float pitch) { + if (obj instanceof String key) { + return new SoundData(Key.of(key), volume, pitch); + } else if (obj instanceof Map map) { + Map data = MiscUtils.castToMap(map, false); + Key id = Key.of((String) data.get("id")); + float volumeFloat = MiscUtils.getAsFloat(data.getOrDefault("volume", volume)); + float pitchFloat = MiscUtils.getAsFloat(data.getOrDefault("pitch", pitch)); + return new SoundData(id, volumeFloat, pitchFloat); + } else { + throw new IllegalArgumentException("Illegal object type for sound data: " + obj.getClass()); + } + } +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/world/ChunkPos.java b/core/src/main/java/net/momirealms/craftengine/core/world/ChunkPos.java index f90eaaad4..d64ff68c0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/world/ChunkPos.java +++ b/core/src/main/java/net/momirealms/craftengine/core/world/ChunkPos.java @@ -24,6 +24,15 @@ public class ChunkPos { this.longKey = asLong(this.x, this.z); } + @Override + public String toString() { + return "ChunkPos{" + + "x=" + x + + ", z=" + z + + ", longKey=" + longKey + + '}'; + } + public int x() { return x; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/world/World.java b/core/src/main/java/net/momirealms/craftengine/core/world/World.java index 3b1cc134e..36979368c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/world/World.java +++ b/core/src/main/java/net/momirealms/craftengine/core/world/World.java @@ -1,6 +1,7 @@ package net.momirealms.craftengine.core.world; import net.momirealms.craftengine.core.item.Item; +import net.momirealms.craftengine.core.sound.SoundData; import net.momirealms.craftengine.core.util.Key; import java.nio.file.Path; @@ -31,4 +32,8 @@ public interface World { void dropExp(Vec3d location, int amount); void playBlockSound(Vec3d location, Key sound, float volume, float pitch); + + default void playBlockSound(Vec3d location, SoundData data) { + playBlockSound(location, data.id(), data.volume(), data.pitch()); + } } diff --git a/gradle.properties b/gradle.properties index cfde053d7..3375f61ce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,9 @@ +org.gradle.jvmargs=-Xmx1G + # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=0.0.37 -config_version=15 +project_version=0.0.38 +config_version=16 lang_version=3 project_group=net.momirealms latest_minecraft_version=1.21.4 @@ -47,6 +49,17 @@ mojang_brigadier_version=1.0.18 byte_buddy_version=1.15.11 snake_yaml_version=2.3 anti_grief_version=0.13 +# Ignite Dependencies +mixinextras_version=0.4.1 +mixin_version=0.15.2+mixin.0.8.7 +ignite_version=1.1.0 +tiny_remapper_version=0.10.4 +# Fabric Dependencies +fabric_version=0.119.2+1.21.4 +yarn_mappings=1.21.4+build.8 +loader_version=0.16.10 +modmenu_version=13.0.3 +cloth_version=17.0.144 # Proxy settings #systemProp.socks.proxyHost=127.0.0.1 diff --git a/server-mod/build.gradle.kts b/server-mod/build.gradle.kts index cb3c3b595..f407dd6fe 100644 --- a/server-mod/build.gradle.kts +++ b/server-mod/build.gradle.kts @@ -14,11 +14,11 @@ repositories { dependencies { implementation(project(":shared")) - remapper("net.fabricmc:tiny-remapper:0.10.4:fat") - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.21.4-R0.1-SNAPSHOT") - compileOnly("space.vectrix.ignite:ignite-api:1.1.0") - compileOnly("net.fabricmc:sponge-mixin:0.15.2+mixin.0.8.7") - compileOnly("io.github.llamalad7:mixinextras-common:0.4.1") + remapper("net.fabricmc:tiny-remapper:${rootProject.properties["tiny_remapper_version"]}:fat") + paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:${property("latest_minecraft_version")}-R0.1-SNAPSHOT") + compileOnly("space.vectrix.ignite:ignite-api:${rootProject.properties["ignite_version"]}") + compileOnly("net.fabricmc:sponge-mixin:${rootProject.properties["mixin_version"]}") + compileOnly("io.github.llamalad7:mixinextras-common:${rootProject.properties["mixinextras_version"]}") } java { diff --git a/settings.gradle.kts b/settings.gradle.kts index cd96a4442..e222e92cd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,15 +4,16 @@ include(":core") include(":bukkit") include(":bukkit:legacy") include(":bukkit:compatibility") -include(":bukkit-loader") +include(":bukkit:loader") include(":server-mod") +include(":client-mod") pluginManagement { plugins { - kotlin("jvm") version "2.0.20" + kotlin("jvm") version "2.1.20" } repositories { gradlePluginPortal() maven("https://repo.papermc.io/repository/maven-public/") + maven("https://maven.fabricmc.net/") } } -