Make a lot of progress on legacy conversions.

This commit is contained in:
Matthew Miller 2018-07-31 16:14:36 +10:00
parent fdb7ada295
commit c05c33cab0
6 changed files with 280 additions and 241 deletions

View File

@ -19,7 +19,9 @@
package com.sk89q.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
@ -301,4 +303,24 @@ public final class StringUtil {
return type;
}
public static List<String> parseListInQuotes(String[] input, char delimiter, char quoteOpen, char quoteClose) {
List<String> parsableBlocks = new ArrayList<>();
StringBuilder buffer = new StringBuilder();
for (String split : input) {
if (split.indexOf(quoteOpen) != -1 && split.indexOf(quoteClose) == -1) {
buffer.append(split).append(delimiter);
} else if (split.indexOf(quoteClose) != -1 && split.indexOf(quoteOpen) == -1) {
buffer.append(split);
parsableBlocks.add(buffer.toString());
buffer = new StringBuilder();
} else if (buffer.length() == 0) {
parsableBlocks.add(split);
} else {
buffer.append(split).append(delimiter);
}
}
return parsableBlocks;
}
}

View File

@ -19,6 +19,7 @@
package com.sk89q.worldedit.extension.factory;
import com.sk89q.util.StringUtil;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.extension.input.InputParseException;
@ -59,7 +60,8 @@ public class BlockFactory extends AbstractFactory<BlockStateHolder> {
*/
public Set<BlockStateHolder> parseFromListInput(String input, ParserContext context) throws InputParseException {
Set<BlockStateHolder> blocks = new HashSet<>();
for (String token : input.split(",")) {
String[] splits = input.split(",");
for (String token : StringUtil.parseListInQuotes(splits, ',', '[', ']')) {
blocks.add(parseFromInput(token, context));
}
return blocks;

View File

@ -48,8 +48,6 @@ import com.sk89q.worldedit.world.registry.LegacyMapper;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Parses block input strings.
@ -98,7 +96,6 @@ class DefaultBlockParser extends InputParser<BlockStateHolder> {
}
}
private static Pattern blockStatePattern = Pattern.compile("([a-z:_]+)(?:\\[([a-zA-Z0-9=, _]+)])?", Pattern.CASE_INSENSITIVE);
private static String[] EMPTY_STRING_ARRAY = new String[]{};
/**
@ -210,14 +207,21 @@ class DefaultBlockParser extends InputParser<BlockStateHolder> {
}
if (state == null) {
Matcher matcher = blockStatePattern.matcher(blockAndExtraData[0]); // TODO Move away from regex because it's hella slow
if (!matcher.matches() || matcher.groupCount() < 2 || matcher.groupCount() > 3) {
String typeString;
String stateString = null;
int stateStart = blockAndExtraData[0].indexOf('[');
if (stateStart == -1) {
typeString = blockAndExtraData[0];
} else {
typeString = blockAndExtraData[0].substring(0, stateStart);
stateString = blockAndExtraData[0].substring(stateStart + 1, blockAndExtraData[0].length() - 1);
}
if (typeString == null || typeString.isEmpty()) {
throw new InputParseException("Invalid format");
}
String typeString = matcher.group(1);
String[] stateProperties = EMPTY_STRING_ARRAY;
if (matcher.groupCount() >= 2 && matcher.group(2) != null) {
stateProperties = matcher.group(2).split(",");
if (stateString != null) {
stateProperties = stateString.split(",");
}
if ("hand".equalsIgnoreCase(typeString)) {

View File

@ -19,6 +19,7 @@
package com.sk89q.worldedit.extension.factory;
import com.sk89q.util.StringUtil;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;
import com.sk89q.worldedit.extension.input.ParserContext;
@ -39,7 +40,8 @@ class RandomPatternParser extends InputParser<Pattern> {
BlockFactory blockRegistry = worldEdit.getBlockFactory();
RandomPattern randomPattern = new RandomPattern();
for (String token : input.split(",")) {
String[] splits = input.split(",");
for (String token : StringUtil.parseListInQuotes(splits, ',', '[', ']')) {
BlockStateHolder block;
double chance;

View File

@ -19,8 +19,8 @@
package com.sk89q.worldedit.world.registry;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.io.Resources;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@ -48,8 +48,10 @@ public class LegacyMapper {
private static final Logger log = Logger.getLogger(LegacyMapper.class.getCanonicalName());
private static LegacyMapper INSTANCE;
private BiMap<String, BlockState> blockMap = HashBiMap.create();
private BiMap<String, ItemType> itemMap = HashBiMap.create();
private Multimap<String, BlockState> stringToBlockMap = HashMultimap.create();
private Multimap<BlockState, String> blockToStringMap = HashMultimap.create();
private Multimap<String, ItemType> stringToItemMap = HashMultimap.create();
private Multimap<ItemType, String> itemToStringMap = HashMultimap.create();
/**
* Create a new instance.
@ -85,58 +87,63 @@ public class LegacyMapper {
for (Map.Entry<String, String> blockEntry : dataFile.blocks.entrySet()) {
try {
blockMap.put(blockEntry.getKey(),
(BlockState) WorldEdit.getInstance().getBlockFactory().parseFromInput(blockEntry.getValue(), parserContext));
String id = blockEntry.getKey();
BlockState state = WorldEdit.getInstance().getBlockFactory().parseFromInput(blockEntry.getValue(), parserContext).toImmutableState();
blockToStringMap.put(state, id);
stringToBlockMap.put(id, state);
} catch (Exception e) {
log.fine("Unknown block: " + blockEntry.getValue());
log.warning("Unknown block: " + blockEntry.getValue());
}
}
for (Map.Entry<String, String> itemEntry : dataFile.items.entrySet()) {
try {
itemMap.put(itemEntry.getKey(), ItemTypes.get(itemEntry.getValue()));
String id = itemEntry.getKey();
ItemType type = ItemTypes.get(itemEntry.getValue());
itemToStringMap.put(type, id);
stringToItemMap.put(id, type);
} catch (Exception e) {
log.fine("Unknown item: " + itemEntry.getValue());
log.warning("Unknown item: " + itemEntry.getValue());
}
}
}
@Nullable
public ItemType getItemFromLegacy(int legacyId) {
return itemMap.get(legacyId + ":0");
return getItemFromLegacy(legacyId, 0);
}
@Nullable
public ItemType getItemFromLegacy(int legacyId, int data) {
return itemMap.get(legacyId + ":" + data);
return stringToItemMap.get(legacyId + ":" + data).stream().findFirst().orElse(null);
}
@Nullable
public int[] getLegacyFromItem(ItemType itemType) {
if (!itemMap.inverse().containsKey(itemType)) {
if (!itemToStringMap.containsKey(itemType)) {
return null;
} else {
String value = itemMap.inverse().get(itemType);
String value = itemToStringMap.get(itemType).stream().findFirst().get();
return Arrays.stream(value.split(":")).mapToInt(Integer::parseInt).toArray();
}
}
@Nullable
public BlockState getBlockFromLegacy(int legacyId) {
return blockMap.get(legacyId + ":0");
return getBlockFromLegacy(legacyId, 0);
}
@Nullable
public BlockState getBlockFromLegacy(int legacyId, int data) {
return blockMap.get(legacyId + ":" + data);
return stringToBlockMap.get(legacyId + ":" + data).stream().findFirst().orElse(null);
}
@Nullable
public int[] getLegacyFromBlock(BlockState blockState) {
if (!blockMap.inverse().containsKey(blockState)) {
if (!blockToStringMap.containsKey(blockState)) {
return null;
} else {
String value = blockMap.inverse().get(blockState);
String value = blockToStringMap.get(blockState).stream().findFirst().get();
return Arrays.stream(value.split(":")).mapToInt(Integer::parseInt).toArray();
}
}

View File

@ -114,26 +114,26 @@
"17:9": "minecraft:spruce_log[axis=z]",
"17:10": "minecraft:birch_log[axis=z]",
"17:11": "minecraft:jungle_log[axis=z]",
"17:12": "minecraft:oak_log[axis=none]",
"17:13": "minecraft:spruce_log[axis=none]",
"17:14": "minecraft:birch_log[axis=none]",
"17:15": "minecraft:jungle_log[axis=none]",
"18:0": "minecraft:oak_leaves[check_decay=false,decayable=true]",
"18:1": "minecraft:spruce_leaves[check_decay=false,decayable=true]",
"18:2": "minecraft:birch_leaves[check_decay=false,decayable=true]",
"18:3": "minecraft:jungle_leaves[check_decay=false,decayable=true]",
"18:4": "minecraft:oak_leaves[check_decay=false,decayable=false]",
"18:5": "minecraft:spruce_leaves[check_decay=false,decayable=false]",
"18:6": "minecraft:birch_leaves[check_decay=false,decayable=false]",
"18:7": "minecraft:jungle_leaves[check_decay=false,decayable=false]",
"18:8": "minecraft:oak_leaves[check_decay=true,decayable=true]",
"18:9": "minecraft:spruce_leaves[check_decay=true,decayable=true]",
"18:10": "minecraft:birch_leaves[check_decay=true,decayable=true]",
"18:11": "minecraft:jungle_leaves[check_decay=true,decayable=true]",
"18:12": "minecraft:oak_leaves[check_decay=true,decayable=false]",
"18:13": "minecraft:spruce_leaves[check_decay=true,decayable=false]",
"18:14": "minecraft:birch_leaves[check_decay=true,decayable=false]",
"18:15": "minecraft:jungle_leaves[check_decay=true,decayable=false]",
"17:12": "minecraft:oak_wood",
"17:13": "minecraft:spruce_wood",
"17:14": "minecraft:birch_wood",
"17:15": "minecraft:jungle_wood",
"18:0": "minecraft:oak_leaves[persistent=false,distance=1]",
"18:1": "minecraft:spruce_leaves[persistent=false,distance=1]",
"18:2": "minecraft:birch_leaves[persistent=false,distance=1]",
"18:3": "minecraft:jungle_leaves[persistent=false,distance=1]",
"18:4": "minecraft:oak_leaves[persistent=true,distance=1]",
"18:5": "minecraft:spruce_leaves[persistent=true,distance=1]",
"18:6": "minecraft:birch_leaves[persistent=true,distance=1]",
"18:7": "minecraft:jungle_leaves[persistent=true,distance=1]",
"18:8": "minecraft:oak_leaves[persistent=false,distance=1]",
"18:9": "minecraft:spruce_leaves[persistent=false,distance=1]",
"18:10": "minecraft:birch_leaves[persistent=false,distance=1]",
"18:11": "minecraft:jungle_leaves[persistent=false,distance=1]",
"18:12": "minecraft:oak_leaves[persistent=true,distance=1]",
"18:13": "minecraft:spruce_leaves[persistent=true,distance=1]",
"18:14": "minecraft:birch_leaves[persistent=true,distance=1]",
"18:15": "minecraft:jungle_leaves[persistent=true,distance=1]",
"19:0": "minecraft:sponge",
"19:1": "minecraft:wet_sponge",
"20:0": "minecraft:glass",
@ -171,18 +171,18 @@
"26:13": "minecraft:red_bed[part=head,facing=west,occupied=true]",
"26:14": "minecraft:red_bed[part=head,facing=north,occupied=true]",
"26:15": "minecraft:red_bed[part=head,facing=east,occupied=true]",
"27:0": "minecraft:golden_rail[shape=north_south,powered=false]",
"27:1": "minecraft:golden_rail[shape=east_west,powered=false]",
"27:2": "minecraft:golden_rail[shape=ascending_east,powered=false]",
"27:3": "minecraft:golden_rail[shape=ascending_west,powered=false]",
"27:4": "minecraft:golden_rail[shape=ascending_north,powered=false]",
"27:5": "minecraft:golden_rail[shape=ascending_south,powered=false]",
"27:8": "minecraft:golden_rail[shape=north_south,powered=true]",
"27:9": "minecraft:golden_rail[shape=east_west,powered=true]",
"27:10": "minecraft:golden_rail[shape=ascending_east,powered=true]",
"27:11": "minecraft:golden_rail[shape=ascending_west,powered=true]",
"27:12": "minecraft:golden_rail[shape=ascending_north,powered=true]",
"27:13": "minecraft:golden_rail[shape=ascending_south,powered=true]",
"27:0": "minecraft:powered_rail[shape=north_south,powered=false]",
"27:1": "minecraft:powered_rail[shape=east_west,powered=false]",
"27:2": "minecraft:powered_rail[shape=ascending_east,powered=false]",
"27:3": "minecraft:powered_rail[shape=ascending_west,powered=false]",
"27:4": "minecraft:powered_rail[shape=ascending_north,powered=false]",
"27:5": "minecraft:powered_rail[shape=ascending_south,powered=false]",
"27:8": "minecraft:powered_rail[shape=north_south,powered=true]",
"27:9": "minecraft:powered_rail[shape=east_west,powered=true]",
"27:10": "minecraft:powered_rail[shape=ascending_east,powered=true]",
"27:11": "minecraft:powered_rail[shape=ascending_west,powered=true]",
"27:12": "minecraft:powered_rail[shape=ascending_north,powered=true]",
"27:13": "minecraft:powered_rail[shape=ascending_south,powered=true]",
"28:0": "minecraft:detector_rail[shape=north_south,powered=false]",
"28:1": "minecraft:detector_rail[shape=east_west,powered=false]",
"28:2": "minecraft:detector_rail[shape=ascending_east,powered=false]",
@ -239,7 +239,7 @@
"35:0": "minecraft:white_wool",
"35:1": "minecraft:orange_wool",
"35:2": "minecraft:magenta_wool",
"35:3": "minecraft:wool[color=lightblue]",
"35:3": "minecraft:light_blue_wool",
"35:4": "minecraft:yellow_wool",
"35:5": "minecraft:lime_wool",
"35:6": "minecraft:pink_wool",
@ -311,8 +311,8 @@
"44:14": "minecraft:nether_brick_slab[type=top]",
"44:15": "minecraft:quartz_slab[type=top]",
"45:0": "minecraft:bricks",
"46:0": "minecraft:tnt[explode=false]",
"46:1": "minecraft:tnt[explode=true]",
"46:0": "minecraft:tnt[unstable=false]",
"46:1": "minecraft:tnt[unstable=true]",
"47:0": "minecraft:bookshelf",
"48:0": "minecraft:mossy_cobblestone",
"49:0": "minecraft:obsidian",
@ -556,8 +556,8 @@
"87:0": "minecraft:netherrack",
"88:0": "minecraft:soul_sand",
"89:0": "minecraft:glowstone",
"90:1": "minecraft:portal[axis=x]",
"90:2": "minecraft:portal[axis=z]",
"90:1": "minecraft:nether_portal[axis=x]",
"90:2": "minecraft:nether_portal[axis=z]",
"91:0": "minecraft:jack_o_lantern[facing=south]",
"91:1": "minecraft:jack_o_lantern[facing=west]",
"91:2": "minecraft:jack_o_lantern[facing=north]",
@ -569,42 +569,42 @@
"92:4": "minecraft:cake[bites=4]",
"92:5": "minecraft:cake[bites=5]",
"92:6": "minecraft:cake[bites=6]",
"93:0": "minecraft:unpowered_repeater[delay=1,facing=south,locked=false]",
"93:1": "minecraft:unpowered_repeater[delay=1,facing=west,locked=false]",
"93:2": "minecraft:unpowered_repeater[delay=1,facing=north,locked=false]",
"93:3": "minecraft:unpowered_repeater[delay=1,facing=east,locked=false]",
"93:4": "minecraft:unpowered_repeater[delay=2,facing=south,locked=false]",
"93:5": "minecraft:unpowered_repeater[delay=2,facing=west,locked=false]",
"93:6": "minecraft:unpowered_repeater[delay=2,facing=north,locked=false]",
"93:7": "minecraft:unpowered_repeater[delay=2,facing=east,locked=false]",
"93:8": "minecraft:unpowered_repeater[delay=3,facing=south,locked=false]",
"93:9": "minecraft:unpowered_repeater[delay=3,facing=west,locked=false]",
"93:10": "minecraft:unpowered_repeater[delay=3,facing=north,locked=false]",
"93:11": "minecraft:unpowered_repeater[delay=3,facing=east,locked=false]",
"93:12": "minecraft:unpowered_repeater[delay=4,facing=south,locked=false]",
"93:13": "minecraft:unpowered_repeater[delay=4,facing=west,locked=false]",
"93:14": "minecraft:unpowered_repeater[delay=4,facing=north,locked=false]",
"93:15": "minecraft:unpowered_repeater[delay=4,facing=east,locked=false]",
"94:0": "minecraft:powered_repeater[delay=1,facing=south,locked=false]",
"94:1": "minecraft:powered_repeater[delay=1,facing=west,locked=false]",
"94:2": "minecraft:powered_repeater[delay=1,facing=north,locked=false]",
"94:3": "minecraft:powered_repeater[delay=1,facing=east,locked=false]",
"94:4": "minecraft:powered_repeater[delay=2,facing=south,locked=false]",
"94:5": "minecraft:powered_repeater[delay=2,facing=west,locked=false]",
"94:6": "minecraft:powered_repeater[delay=2,facing=north,locked=false]",
"94:7": "minecraft:powered_repeater[delay=2,facing=east,locked=false]",
"94:8": "minecraft:powered_repeater[delay=3,facing=south,locked=false]",
"94:9": "minecraft:powered_repeater[delay=3,facing=west,locked=false]",
"94:10": "minecraft:powered_repeater[delay=3,facing=north,locked=false]",
"94:11": "minecraft:powered_repeater[delay=3,facing=east,locked=false]",
"94:12": "minecraft:powered_repeater[delay=4,facing=south,locked=false]",
"94:13": "minecraft:powered_repeater[delay=4,facing=west,locked=false]",
"94:14": "minecraft:powered_repeater[delay=4,facing=north,locked=false]",
"94:15": "minecraft:powered_repeater[delay=4,facing=east,locked=false]",
"93:0": "minecraft:repeater[delay=1,facing=south,locked=false,powered=false]",
"93:1": "minecraft:repeater[delay=1,facing=west,locked=false,powered=false]",
"93:2": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]",
"93:3": "minecraft:repeater[delay=1,facing=east,locked=false,powered=false]",
"93:4": "minecraft:repeater[delay=2,facing=south,locked=false,powered=false]",
"93:5": "minecraft:repeater[delay=2,facing=west,locked=false,powered=false]",
"93:6": "minecraft:repeater[delay=2,facing=north,locked=false,powered=false]",
"93:7": "minecraft:repeater[delay=2,facing=east,locked=false,powered=false]",
"93:8": "minecraft:repeater[delay=3,facing=south,locked=false,powered=false]",
"93:9": "minecraft:repeater[delay=3,facing=west,locked=false,powered=false]",
"93:10": "minecraft:repeater[delay=3,facing=north,locked=false,powered=false]",
"93:11": "minecraft:repeater[delay=3,facing=east,locked=false,powered=false]",
"93:12": "minecraft:repeater[delay=4,facing=south,locked=false,powered=false]",
"93:13": "minecraft:repeater[delay=4,facing=west,locked=false,powered=false]",
"93:14": "minecraft:repeater[delay=4,facing=north,locked=false,powered=false]",
"93:15": "minecraft:repeater[delay=4,facing=east,locked=false,powered=false]",
"94:0": "minecraft:repeater[delay=1,facing=south,locked=false,powered=true]",
"94:1": "minecraft:repeater[delay=1,facing=west,locked=false,powered=true]",
"94:2": "minecraft:repeater[delay=1,facing=north,locked=false,powered=true]",
"94:3": "minecraft:repeater[delay=1,facing=east,locked=false,powered=true]",
"94:4": "minecraft:repeater[delay=2,facing=south,locked=false,powered=true]",
"94:5": "minecraft:repeater[delay=2,facing=west,locked=false,powered=true]",
"94:6": "minecraft:repeater[delay=2,facing=north,locked=false,powered=true]",
"94:7": "minecraft:repeater[delay=2,facing=east,locked=false,powered=true]",
"94:8": "minecraft:repeater[delay=3,facing=south,locked=false,powered=true]",
"94:9": "minecraft:repeater[delay=3,facing=west,locked=false,powered=true]",
"94:10": "minecraft:repeater[delay=3,facing=north,locked=false,powered=true]",
"94:11": "minecraft:repeater[delay=3,facing=east,locked=false,powered=true]",
"94:12": "minecraft:repeater[delay=4,facing=south,locked=false,powered=true]",
"94:13": "minecraft:repeater[delay=4,facing=west,locked=false,powered=true]",
"94:14": "minecraft:repeater[delay=4,facing=north,locked=false,powered=true]",
"94:15": "minecraft:repeater[delay=4,facing=east,locked=false,powered=true]",
"95:0": "minecraft:white_stained_glass",
"95:1": "minecraft:orange_stained_glass",
"95:2": "minecraft:magenta_stained_glass",
"95:3": "minecraft:stained_glass[color=lightblue]",
"95:3": "minecraft:light_blue_stained_glass",
"95:4": "minecraft:yellow_stained_glass",
"95:5": "minecraft:lime_stained_glass",
"95:6": "minecraft:pink_stained_glass",
@ -671,23 +671,23 @@
"100:15": "minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]",
"101:0": "minecraft:iron_bars[east=false,south=false,north=false,west=false]",
"102:0": "minecraft:glass_pane[east=false,south=false,north=false,west=false]",
"103:0": "minecraft:melon_block",
"104:0": "minecraft:pumpkin_stem[facing=east,age=0]",
"104:1": "minecraft:pumpkin_stem[facing=east,age=1]",
"104:2": "minecraft:pumpkin_stem[facing=east,age=2]",
"104:3": "minecraft:pumpkin_stem[facing=east,age=3]",
"104:4": "minecraft:pumpkin_stem[facing=east,age=4]",
"104:5": "minecraft:pumpkin_stem[facing=east,age=5]",
"104:6": "minecraft:pumpkin_stem[facing=east,age=6]",
"104:7": "minecraft:pumpkin_stem[facing=east,age=7]",
"105:0": "minecraft:melon_stem[facing=east,age=0]",
"105:1": "minecraft:melon_stem[facing=east,age=1]",
"105:2": "minecraft:melon_stem[facing=east,age=2]",
"105:3": "minecraft:melon_stem[facing=east,age=3]",
"105:4": "minecraft:melon_stem[facing=east,age=4]",
"105:5": "minecraft:melon_stem[facing=east,age=5]",
"105:6": "minecraft:melon_stem[facing=east,age=6]",
"105:7": "minecraft:melon_stem[facing=east,age=7]",
"103:0": "minecraft:melon",
"104:0": "minecraft:pumpkin_stem[age=0]",
"104:1": "minecraft:pumpkin_stem[age=1]",
"104:2": "minecraft:pumpkin_stem[age=2]",
"104:3": "minecraft:pumpkin_stem[age=3]",
"104:4": "minecraft:pumpkin_stem[age=4]",
"104:5": "minecraft:pumpkin_stem[age=5]",
"104:6": "minecraft:pumpkin_stem[age=6]",
"104:7": "minecraft:pumpkin_stem[age=7]",
"105:0": "minecraft:melon_stem[age=0]",
"105:1": "minecraft:melon_stem[age=1]",
"105:2": "minecraft:melon_stem[age=2]",
"105:3": "minecraft:melon_stem[age=3]",
"105:4": "minecraft:melon_stem[age=4]",
"105:5": "minecraft:melon_stem[age=5]",
"105:6": "minecraft:melon_stem[age=6]",
"105:7": "minecraft:melon_stem[age=7]",
"106:0": "minecraft:vine[east=false,south=false,north=false,west=false,up=false]",
"106:1": "minecraft:vine[east=false,south=true,north=false,west=false,up=false]",
"106:2": "minecraft:vine[east=false,south=false,north=false,west=true,up=false]",
@ -885,22 +885,22 @@
"138:0": "minecraft:beacon",
"139:0": "minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,variant=cobblestone,up=false]",
"139:1": "minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,variant=mossy_cobblestone,up=false]",
"140:0": "minecraft:flower_pot[contents=cactus,legacy_data=0]",
"140:1": "minecraft:flower_pot[contents=cactus,legacy_data=1]",
"140:2": "minecraft:flower_pot[contents=cactus,legacy_data=2]",
"140:3": "minecraft:flower_pot[contents=cactus,legacy_data=3]",
"140:4": "minecraft:flower_pot[contents=cactus,legacy_data=4]",
"140:5": "minecraft:flower_pot[contents=cactus,legacy_data=5]",
"140:6": "minecraft:flower_pot[contents=cactus,legacy_data=6]",
"140:7": "minecraft:flower_pot[contents=cactus,legacy_data=7]",
"140:8": "minecraft:flower_pot[contents=cactus,legacy_data=8]",
"140:9": "minecraft:flower_pot[contents=cactus,legacy_data=9]",
"140:10": "minecraft:flower_pot[contents=cactus,legacy_data=10]",
"140:11": "minecraft:flower_pot[contents=cactus,legacy_data=11]",
"140:12": "minecraft:flower_pot[contents=cactus,legacy_data=12]",
"140:13": "minecraft:flower_pot[contents=cactus,legacy_data=13]",
"140:14": "minecraft:flower_pot[contents=cactus,legacy_data=14]",
"140:15": "minecraft:flower_pot[contents=cactus,legacy_data=15]",
"140:0": "minecraft:flower_pot",
"140:1": "minecraft:potted_poppy",
"140:2": "minecraft:potted_dandelion",
"140:3": "minecraft:potted_oak_sapling",
"140:4": "minecraft:potted_spruce_sapling",
"140:5": "minecraft:potted_birch_sapling",
"140:6": "minecraft:potted_jungle_sapling",
"140:7": "minecraft:potted_red_mushroom",
"140:8": "minecraft:potted_brown_mushroom",
"140:9": "minecraft:potted_cactus",
"140:10": "minecraft:potted_dead_bush",
"140:11": "minecraft:potted_fern",
"140:12": "minecraft:potted_acacia_sapling",
"140:13": "minecraft:potted_dark_oak_sapling",
"140:14": "minecraft:potted_blue_orchid",
"140:15": "minecraft:potted_allium",
"141:0": "minecraft:carrots[age=0]",
"141:1": "minecraft:carrots[age=1]",
"141:2": "minecraft:carrots[age=2]",
@ -917,30 +917,30 @@
"142:5": "minecraft:potatoes[age=5]",
"142:6": "minecraft:potatoes[age=6]",
"142:7": "minecraft:potatoes[age=7]",
"143:0": "minecraft:wooden_button[powered=false,facing=down]",
"143:1": "minecraft:wooden_button[powered=false,facing=east]",
"143:2": "minecraft:wooden_button[powered=false,facing=west]",
"143:3": "minecraft:wooden_button[powered=false,facing=south]",
"143:4": "minecraft:wooden_button[powered=false,facing=north]",
"143:5": "minecraft:wooden_button[powered=false,facing=up]",
"143:8": "minecraft:wooden_button[powered=true,facing=down]",
"143:9": "minecraft:wooden_button[powered=true,facing=east]",
"143:10": "minecraft:wooden_button[powered=true,facing=west]",
"143:11": "minecraft:wooden_button[powered=true,facing=south]",
"143:12": "minecraft:wooden_button[powered=true,facing=north]",
"143:13": "minecraft:wooden_button[powered=true,facing=up]",
"144:0": "minecraft:skull[nodrop=false,facing=down]",
"144:1": "minecraft:skull[nodrop=false,facing=up]",
"144:2": "minecraft:skull[nodrop=false,facing=north]",
"144:3": "minecraft:skull[nodrop=false,facing=south]",
"144:4": "minecraft:skull[nodrop=false,facing=west]",
"144:5": "minecraft:skull[nodrop=false,facing=east]",
"144:8": "minecraft:skull[nodrop=true,facing=down]",
"144:9": "minecraft:skull[nodrop=true,facing=up]",
"144:10": "minecraft:skull[nodrop=true,facing=north]",
"144:11": "minecraft:skull[nodrop=true,facing=south]",
"144:12": "minecraft:skull[nodrop=true,facing=west]",
"144:13": "minecraft:skull[nodrop=true,facing=east]",
"143:0": "minecraft:oak_button[powered=false,facing=down,face=ceiling]",
"143:1": "minecraft:oak_button[powered=false,facing=east,face=wall]",
"143:2": "minecraft:oak_button[powered=false,facing=west,face=wall]",
"143:3": "minecraft:oak_button[powered=false,facing=south,face=wall]",
"143:4": "minecraft:oak_button[powered=false,facing=north,face=wall]",
"143:5": "minecraft:oak_button[powered=false,facing=up,face=floor]",
"143:8": "minecraft:oak_button[powered=true,facing=down,face=ceiling]",
"143:9": "minecraft:oak_button[powered=true,facing=east,face=wall]",
"143:10": "minecraft:oak_button[powered=true,facing=west,face=wall]",
"143:11": "minecraft:oak_button[powered=true,facing=south,face=wall]",
"143:12": "minecraft:oak_button[powered=true,facing=north,face=wall]",
"143:13": "minecraft:oak_button[powered=true,facing=up,face=floor]",
"144:0": "minecraft:skeleton_skull[rotation=0]",
"144:1": "minecraft:skeleton_skull[rotation=4]",
"144:2": "minecraft:skeleton_wall_skull[facing=north]",
"144:3": "minecraft:skeleton_wall_skull[facing=south]",
"144:4": "minecraft:skeleton_wall_skull[facing=west]",
"144:5": "minecraft:skeleton_wall_skull[facing=east]",
"144:8": "minecraft:skeleton_skull[rotation=8]",
"144:9": "minecraft:skeleton_skull[rotation=12]",
"144:10": "minecraft:skeleton_wall_skull[facing=north]",
"144:11": "minecraft:skeleton_wall_skull[facing=south]",
"144:12": "minecraft:skeleton_wall_skull[facing=west]",
"144:13": "minecraft:skeleton_wall_skull[facing=east]",
"145:0": "minecraft:anvil[facing=south]",
"145:1": "minecraft:anvil[facing=west]",
"145:2": "minecraft:anvil[facing=north]",
@ -989,38 +989,38 @@
"148:13": "minecraft:heavy_weighted_pressure_plate[power=13]",
"148:14": "minecraft:heavy_weighted_pressure_plate[power=14]",
"148:15": "minecraft:heavy_weighted_pressure_plate[power=15]",
"149:0": "minecraft:unpowered_comparator[mode=compare,powered=false,facing=south]",
"149:1": "minecraft:unpowered_comparator[mode=compare,powered=false,facing=west]",
"149:2": "minecraft:unpowered_comparator[mode=compare,powered=false,facing=north]",
"149:3": "minecraft:unpowered_comparator[mode=compare,powered=false,facing=east]",
"149:4": "minecraft:unpowered_comparator[mode=subtract,powered=false,facing=south]",
"149:5": "minecraft:unpowered_comparator[mode=subtract,powered=false,facing=west]",
"149:6": "minecraft:unpowered_comparator[mode=subtract,powered=false,facing=north]",
"149:7": "minecraft:unpowered_comparator[mode=subtract,powered=false,facing=east]",
"149:8": "minecraft:unpowered_comparator[mode=compare,powered=true,facing=south]",
"149:9": "minecraft:unpowered_comparator[mode=compare,powered=true,facing=west]",
"149:10": "minecraft:unpowered_comparator[mode=compare,powered=true,facing=north]",
"149:11": "minecraft:unpowered_comparator[mode=compare,powered=true,facing=east]",
"149:12": "minecraft:unpowered_comparator[mode=subtract,powered=true,facing=south]",
"149:13": "minecraft:unpowered_comparator[mode=subtract,powered=true,facing=west]",
"149:14": "minecraft:unpowered_comparator[mode=subtract,powered=true,facing=north]",
"149:15": "minecraft:unpowered_comparator[mode=subtract,powered=true,facing=east]",
"150:0": "minecraft:powered_comparator[mode=compare,powered=false,facing=south]",
"150:1": "minecraft:powered_comparator[mode=compare,powered=false,facing=west]",
"150:2": "minecraft:powered_comparator[mode=compare,powered=false,facing=north]",
"150:3": "minecraft:powered_comparator[mode=compare,powered=false,facing=east]",
"150:4": "minecraft:powered_comparator[mode=subtract,powered=false,facing=south]",
"150:5": "minecraft:powered_comparator[mode=subtract,powered=false,facing=west]",
"150:6": "minecraft:powered_comparator[mode=subtract,powered=false,facing=north]",
"150:7": "minecraft:powered_comparator[mode=subtract,powered=false,facing=east]",
"150:8": "minecraft:powered_comparator[mode=compare,powered=true,facing=south]",
"150:9": "minecraft:powered_comparator[mode=compare,powered=true,facing=west]",
"150:10": "minecraft:powered_comparator[mode=compare,powered=true,facing=north]",
"150:11": "minecraft:powered_comparator[mode=compare,powered=true,facing=east]",
"150:12": "minecraft:powered_comparator[mode=subtract,powered=true,facing=south]",
"150:13": "minecraft:powered_comparator[mode=subtract,powered=true,facing=west]",
"150:14": "minecraft:powered_comparator[mode=subtract,powered=true,facing=north]",
"150:15": "minecraft:powered_comparator[mode=subtract,powered=true,facing=east]",
"149:0": "minecraft:comparator[mode=compare,powered=false,facing=south]",
"149:1": "minecraft:comparator[mode=compare,powered=false,facing=west]",
"149:2": "minecraft:comparator[mode=compare,powered=false,facing=north]",
"149:3": "minecraft:comparator[mode=compare,powered=false,facing=east]",
"149:4": "minecraft:comparator[mode=subtract,powered=false,facing=south]",
"149:5": "minecraft:comparator[mode=subtract,powered=false,facing=west]",
"149:6": "minecraft:comparator[mode=subtract,powered=false,facing=north]",
"149:7": "minecraft:comparator[mode=subtract,powered=false,facing=east]",
"149:8": "minecraft:comparator[mode=compare,powered=false,facing=south]",
"149:9": "minecraft:comparator[mode=compare,powered=false,facing=west]",
"149:10": "minecraft:comparator[mode=compare,powered=false,facing=north]",
"149:11": "minecraft:comparator[mode=compare,powered=false,facing=east]",
"149:12": "minecraft:comparator[mode=subtract,powered=false,facing=south]",
"149:13": "minecraft:comparator[mode=subtract,powered=false,facing=west]",
"149:14": "minecraft:comparator[mode=subtract,powered=false,facing=north]",
"149:15": "minecraft:comparator[mode=subtract,powered=false,facing=east]",
"150:0": "minecraft:comparator[mode=compare,powered=true,facing=south]",
"150:1": "minecraft:comparator[mode=compare,powered=true,facing=west]",
"150:2": "minecraft:comparator[mode=compare,powered=true,facing=north]",
"150:3": "minecraft:comparator[mode=compare,powered=true,facing=east]",
"150:4": "minecraft:comparator[mode=subtract,powered=true,facing=south]",
"150:5": "minecraft:comparator[mode=subtract,powered=true,facing=west]",
"150:6": "minecraft:comparator[mode=subtract,powered=true,facing=north]",
"150:7": "minecraft:comparator[mode=subtract,powered=true,facing=east]",
"150:8": "minecraft:comparator[mode=compare,powered=true,facing=south]",
"150:9": "minecraft:comparator[mode=compare,powered=true,facing=west]",
"150:10": "minecraft:comparator[mode=compare,powered=true,facing=north]",
"150:11": "minecraft:comparator[mode=compare,powered=true,facing=east]",
"150:12": "minecraft:comparator[mode=subtract,powered=true,facing=south]",
"150:13": "minecraft:comparator[mode=subtract,powered=true,facing=west]",
"150:14": "minecraft:comparator[mode=subtract,powered=true,facing=north]",
"150:15": "minecraft:comparator[mode=subtract,powered=true,facing=east]",
"151:0": "minecraft:daylight_detector[inverted=false,power=0]",
"151:1": "minecraft:daylight_detector[inverted=false,power=1]",
"151:2": "minecraft:daylight_detector[inverted=false,power=2]",
@ -1051,9 +1051,9 @@
"154:13": "minecraft:hopper[facing=east,enabled=false]",
"155:0": "minecraft:quartz_block",
"155:1": "minecraft:chiseled_quartz_block",
"155:2": "minecraft:quartz_block[variant=lines]",
"155:3": "minecraft:quartz_block[variant=lines]",
"155:4": "minecraft:quartz_block[variant=lines]",
"155:2": "minecraft:quartz_pillar[axis=y]",
"155:6": "minecraft:quartz_pillar[axis=x]",
"155:10": "minecraft:quartz_pillar[axis=z]",
"156:0": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=east]",
"156:1": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=west]",
"156:2": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=south]",
@ -1089,7 +1089,7 @@
"159:0": "minecraft:white_terracotta",
"159:1": "minecraft:orange_terracotta",
"159:2": "minecraft:magenta_terracotta",
"159:3": "minecraft:stained_hardened_clay[color=lightblue]",
"159:3": "minecraft:light_blue_terracotta",
"159:4": "minecraft:yellow_terracotta",
"159:5": "minecraft:lime_terracotta",
"159:6": "minecraft:pink_terracotta",
@ -1102,38 +1102,38 @@
"159:13": "minecraft:green_terracotta",
"159:14": "minecraft:red_terracotta",
"159:15": "minecraft:black_terracotta",
"160:0": "minecraft:stained_glass_pane[east=false,color=white,south=false,north=false,west=false]",
"160:1": "minecraft:stained_glass_pane[east=false,color=orange,south=false,north=false,west=false]",
"160:2": "minecraft:stained_glass_pane[east=false,color=magenta,south=false,north=false,west=false]",
"160:3": "minecraft:stained_glass_pane[east=false,color=lightblue,south=false,north=false,west=false]",
"160:4": "minecraft:stained_glass_pane[east=false,color=yellow,south=false,north=false,west=false]",
"160:5": "minecraft:stained_glass_pane[east=false,color=lime,south=false,north=false,west=false]",
"160:6": "minecraft:stained_glass_pane[east=false,color=pink,south=false,north=false,west=false]",
"160:7": "minecraft:stained_glass_pane[east=false,color=gray,south=false,north=false,west=false]",
"160:8": "minecraft:stained_glass_pane[east=false,color=silver,south=false,north=false,west=false]",
"160:9": "minecraft:stained_glass_pane[east=false,color=cyan,south=false,north=false,west=false]",
"160:10": "minecraft:stained_glass_pane[east=false,color=purple,south=false,north=false,west=false]",
"160:11": "minecraft:stained_glass_pane[east=false,color=blue,south=false,north=false,west=false]",
"160:12": "minecraft:stained_glass_pane[east=false,color=brown,south=false,north=false,west=false]",
"160:13": "minecraft:stained_glass_pane[east=false,color=green,south=false,north=false,west=false]",
"160:14": "minecraft:stained_glass_pane[east=false,color=red,south=false,north=false,west=false]",
"160:15": "minecraft:stained_glass_pane[east=false,color=black,south=false,north=false,west=false]",
"161:0": "minecraft:acacia_leaves[check_decay=false,decayable=true]",
"161:1": "minecraft:dark_oak_leaves[check_decay=false,decayable=true]",
"161:4": "minecraft:acacia_leaves[check_decay=false,decayable=false]",
"161:5": "minecraft:dark_oak_leaves[check_decay=false,decayable=false]",
"161:8": "minecraft:acacia_leaves[check_decay=true,decayable=true]",
"161:9": "minecraft:dark_oak_leaves[check_decay=true,decayable=true]",
"161:12": "minecraft:acacia_leaves[check_decay=true,decayable=false]",
"161:13": "minecraft:dark_oak_leaves[check_decay=true,decayable=false]",
"162:0": "minecraft:log2[variant=acacia,axis=y]",
"162:1": "minecraft:log2[variant=dark_oak,axis=y]",
"162:4": "minecraft:log2[variant=acacia,axis=x]",
"162:5": "minecraft:log2[variant=dark_oak,axis=x]",
"162:8": "minecraft:log2[variant=acacia,axis=z]",
"162:9": "minecraft:log2[variant=dark_oak,axis=z]",
"162:12": "minecraft:log2[variant=acacia,axis=none]",
"162:13": "minecraft:log2[variant=dark_oak,axis=none]",
"160:0": "minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:1": "minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:2": "minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:3": "minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:4": "minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:5": "minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:6": "minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:7": "minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:8": "minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:9": "minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:10": "minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:11": "minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:12": "minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:13": "minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:14": "minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]",
"160:15": "minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]",
"161:0": "minecraft:acacia_leaves[persistent=false,distance=1]",
"161:1": "minecraft:dark_oak_leaves[persistent=false,distance=1]",
"161:4": "minecraft:acacia_leaves[persistent=true,distance=1]",
"161:5": "minecraft:dark_oak_leaves[persistent=true,distance=1]",
"161:8": "minecraft:acacia_leaves[persistent=false,distance=1]",
"161:9": "minecraft:dark_oak_leaves[persistent=false,distance=1]",
"161:12": "minecraft:acacia_leaves[persistent=true,distance=1]",
"161:13": "minecraft:dark_oak_leaves[persistent=true,distance=1]",
"162:0": "minecraft:acacia_log[axis=y]",
"162:1": "minecraft:dark_oak_log[axis=y]",
"162:4": "minecraft:acacia_log[axis=x]",
"162:5": "minecraft:dark_oak_log[axis=x]",
"162:8": "minecraft:acacia_log[axis=z]",
"162:9": "minecraft:dark_oak_log[axis=z]",
"162:12": "minecraft:acacia_wood",
"162:13": "minecraft:dark_oak_wood",
"163:0": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=east]",
"163:1": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=west]",
"163:2": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=south]",
@ -1178,7 +1178,7 @@
"171:0": "minecraft:white_carpet",
"171:1": "minecraft:orange_carpet",
"171:2": "minecraft:magenta_carpet",
"171:3": "minecraft:carpet[color=lightblue]",
"171:3": "minecraft:light_blue_carpet",
"171:4": "minecraft:yellow_carpet",
"171:5": "minecraft:lime_carpet",
"171:6": "minecraft:pink_carpet",
@ -1194,16 +1194,18 @@
"172:0": "minecraft:terracotta",
"173:0": "minecraft:coal_block",
"174:0": "minecraft:packed_ice",
"175:0": "minecraft:double_plant[half=lower,variant=sunflower,facing=east]",
"175:1": "minecraft:double_plant[half=lower,variant=syringa,facing=east]",
"175:2": "minecraft:double_plant[half=lower,variant=double_grass,facing=east]",
"175:3": "minecraft:double_plant[half=lower,variant=double_fern,facing=east]",
"175:4": "minecraft:double_plant[half=lower,variant=double_rose,facing=east]",
"175:5": "minecraft:double_plant[half=lower,variant=paeonia,facing=east]",
"175:8": "minecraft:double_plant[half=upper,variant=paeonia,facing=south]",
"175:9": "minecraft:double_plant[half=upper,variant=paeonia,facing=west]",
"175:10": "minecraft:double_plant[half=upper,variant=paeonia,facing=north]",
"175:11": "minecraft:double_plant[half=upper,variant=paeonia,facing=east]",
"175:0": "minecraft:sunflower[half=lower]",
"175:1": "minecraft:lilac[half=lower]",
"175:2": "minecraft:tall_grass[half=lower]",
"175:3": "minecraft:large_fern[half=lower]",
"175:4": "minecraft:rose_bush[half=lower]",
"175:5": "minecraft:peony[half=lower]",
"175:8": "minecraft:sunflower[half=upper]",
"175:9": "minecraft:lilac[half=upper]",
"175:10": "minecraft:tall_grass[half=upper]",
"175:11": "minecraft:large_fern[half=upper]",
"175:12": "minecraft:rose_bush[half=upper]",
"175:13": "minecraft:peony[half=upper]",
"176:0": "minecraft:white_banner[rotation=0]",
"176:1": "minecraft:white_banner[rotation=1]",
"176:2": "minecraft:white_banner[rotation=2]",
@ -1645,7 +1647,7 @@
"251:0": "minecraft:white_concrete",
"251:1": "minecraft:orange_concrete",
"251:2": "minecraft:magenta_concrete",
"251:3": "minecraft:concrete[color=lightblue]",
"251:3": "minecraft:light_blue_concrete",
"251:4": "minecraft:yellow_concrete",
"251:5": "minecraft:lime_concrete",
"251:6": "minecraft:pink_concrete",
@ -1661,7 +1663,7 @@
"252:0": "minecraft:white_concrete_powder",
"252:1": "minecraft:orange_concrete_powder",
"252:2": "minecraft:magenta_concrete_powder",
"252:3": "minecraft:concrete_powder[color=lightblue]",
"252:3": "minecraft:light_blue_concrete_powder",
"252:4": "minecraft:yellow_concrete_powder",
"252:5": "minecraft:lime_concrete_powder",
"252:6": "minecraft:pink_concrete_powder",
@ -1841,7 +1843,7 @@
"100:0": "minecraft:red_mushroom_block",
"101:0": "minecraft:iron_bars",
"102:0": "minecraft:glass_pane",
"103:0": "minecraft:melon_block",
"103:0": "minecraft:melon",
"106:0": "minecraft:vine",
"107:0": "minecraft:oak_fence_gate",
"108:0": "minecraft:brick_stairs",
@ -2156,7 +2158,7 @@
"348:0": "minecraft:glowstone_dust",
"349:0": "minecraft:cod",
"349:1": "minecraft:salmon",
"349:2": "minecraft:clownfish",
"349:2": "minecraft:tropical_fish",
"349:3": "minecraft:pufferfish",
"350:0": "minecraft:cooked_cod",
"350:1": "minecraft:cooked_salmon",
@ -2199,7 +2201,7 @@
"357:0": "minecraft:cookie",
"358:0": "minecraft:filled_map",
"359:0": "minecraft:shears",
"360:0": "minecraft:melon",
"360:0": "minecraft:melon_slice",
"361:0": "minecraft:pumpkin_seeds",
"362:0": "minecraft:melon_seeds",
"363:0": "minecraft:beef",
@ -2221,8 +2223,8 @@
"379:0": "minecraft:brewing_stand",
"380:0": "minecraft:cauldron",
"381:0": "minecraft:ender_eye",
"382:0": "minecraft:speckled_melon",
"383:0": "minecraft:spawn_egg",
"382:0": "minecraft:glistering_melon_slice",
"383:0": "minecraft:pig_spawn_egg",
"384:0": "minecraft:experience_bottle",
"385:0": "minecraft:fire_charge",
"386:0": "minecraft:writable_book",
@ -2292,7 +2294,7 @@
"430:0": "minecraft:acacia_door",
"431:0": "minecraft:dark_oak_door",
"432:0": "minecraft:chorus_fruit",
"433:0": "minecraft:chorus_fruit_popped",
"433:0": "minecraft:popped_chorus_fruit",
"434:0": "minecraft:beetroot",
"435:0": "minecraft:beetroot_seeds",
"436:0": "minecraft:beetroot_soup",